Klicken Sie auf API Gateway für die IAM-Authentifizierung. SigV4-Signaturheader erstellen (Python)

Führen Sie API Gateway für die IAM-Authentifizierung (Python) aus.

Wenn Sie das Ergebnis der API mit Curl usw. zurückgeben möchten, müssen Sie den Header (SigV4-Signatur) der HTTP-Anforderung berechnen. Beachten Sie jedoch, dass das Material nicht gefunden wird Auf anderen Websites erfahren Sie, wie Sie API Gateway IAM zertifizieren. Es gibt eine Möglichkeit, den Hash-Wert zu berechnen, aber ich bin mir nicht sicher. Wenn ich ihn brauche, schaue ich in die Botocore-Bibliothek und erstelle ihn.

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.Generierung von Anmeldeinformationen
credentials = Credentials(os.environ['AWS_ACCESS_KEY_ID'], os.environ['AWS_SECRET_ACCESS_KEY'])

### 2.Generierung von AWS-Anforderungen
request = AWSRequest(method="GET", url=url_)

### 3.AWS-Anforderungssignatur
SigV4Auth(credentials, 'execute-api', ap-northeast-1).add_auth(request)

### 4.API-Ausgabe
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)

Recommended Posts

Klicken Sie auf API Gateway für die IAM-Authentifizierung. SigV4-Signaturheader erstellen (Python)
Erstellen Sie mit AWS SAM schnell eine API mit Python, Lambda und API Gateway
Hit Mastodons API in Python
AWS CDK-Lambda + API-Gateway (Python)
Versuchen Sie die IAM-Datenbankauthentifizierung von Python aus
Erstellen Sie Awaitable mit der Python / C-API
[AWS] API mit API Gateway + Lambda erstellen
Klicken Sie in Python auf die Sesami-API
[Python] Klicken Sie auf die Google Übersetzungs-API
Klicken Sie mit Python auf die Etherpad-Lite-API
Erstellen Sie Google Mail in Python ohne Verwendung der API
Klicken Sie auf die Web-API in Python
[Python] API zum Senden von Google Mail erstellen