Hier ist der Python-Code, der temporäre Anmeldeinformationen über Cognito erhält und diese Informationen für den Zugriff auf S3 verwendet. Was Python betrifft, wurde nur eine unvollständige Implementierung gelöscht, daher werde ich sie veröffentlichen.
Geben Sie auf der Cognito-Seite der S3-Ressource im Voraus die erforderliche Mindestberechtigung für die nicht authentifizierte Rolle.
Unten ist der Code.
cognito-s3.py
client = boto3.client('cognito-identity', 'ap-northeast-1')
#Rufen Sie beim ersten Zugriff die Authentifizierungs-ID von Cognito ab
resp = client.get_id(IdentityPoolId='ap-northeast-1:<YOUR COGNITO IDENTITY POOL ID>')
print "\nIdentity ID: %s"%(resp['IdentityId'])
print "\nRequest ID: %s"%(resp['ResponseMetadata']['RequestId'])
#Holen Sie sich Anmeldeinformationen, um beim zweiten Zugriff eine Sitzung einzurichten
resp = client.get_credentials_for_identity(IdentityId=resp['IdentityId'])
secretKey = resp['Credentials']['SecretKey']
accessKey = resp['Credentials']['AccessKeyId']
token = resp['Credentials']['SessionToken']
print "\nToken: %s"%(token)
print "\nSecretKey: %s"%(secretKey)
print "\nAccessKey ID: %s"%(accessKey)
print resp
#Greifen Sie mit Anmeldeinformationen auf das S3-Objekt zu
session = Session(aws_access_key_id=accessKey,
aws_secret_access_key=secretKey,
aws_session_token=token, #Vergiss den Token nicht!
region_name='ap-northeast-1')
s3 = session.resource('s3')
obj = s3.Object(bucket_name='<BUCKET NAME>', key='<KEY NAME>')
#Das Folgende ist ein Beispiel für das einfache Lesen und Zurückgeben der Länge
response = obj.get()
data = response['Body'].read()
print len(data)
Recommended Posts