IAM認証のAPI Gatewayを叩く。SigV4署名ヘッダーを作成(python)
IAM認証のAPI Gatewayを実行する(python)
curl等でAPIの結果を返したいとき、HTTPリクエストのヘッダ(SigV4署名)を算出する必要があるが、資料が見当たらないため備忘
APIGatewayをIAM認証にする方法はほかのサイト参照。
ハッシュ値を算出する方法があるがよくわからないので、必要になったときにbotocoreのライブラリ内を見て作成する。
check_iam.py
import os
from botocore.awsrequest import AWSRequest
from botocore.auth import SigV4Auth
from botocore.endpoint import URLLib3Session
from botocore.credentials import Credentials
import requests
url_ = "https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/v1"
### 1. Credential生成
credentials = Credentials(os.environ['AWS_ACCESS_KEY_ID'], os.environ['AWS_SECRET_ACCESS_KEY'])
### 2. AWSRequest生成
request = AWSRequest(method="GET", url=url_)
### 3. AWSリクエスト署名
SigV4Auth(credentials, 'execute-api', ap-northeast-1).add_auth(request)
### 4. API発行
headers = {
'Authorization': request.headers['Authorization'],
'Host':'xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com',
'X-Amz-Date':request.context['timestamp']
}
response = requests.get(url_,headers=headers)
print(response.text)
Author And Source
この問題について(IAM認証のAPI Gatewayを叩く。SigV4署名ヘッダーを作成(python)), 我々は、より多くの情報をここで見つけました https://qiita.com/Armadillo_/items/3f6f71ba1ee57fbcfda6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .