Greifen Sie über Cognito in Python auf S3-Ressourcen zu

Zweck

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.

Vorbereitung

Geben Sie auf der Cognito-Seite der S3-Ressource im Voraus die erforderliche Mindestberechtigung für die nicht authentifizierte Rolle.

Implementierung

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

Greifen Sie über Cognito in Python auf S3-Ressourcen zu
Versuchen Sie den Zugriff auf das SPS-Register in Python
Greifen Sie mit Python auf die Twitter-API zu
Wiederbelebt von "kein Internetzugang" in Python
PUT gzip direkt in S3 in Python
Exklusiver Dateizugriff zwischen Prozessen in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Geokodierung in Python
SendKeys in Python
Holen Sie sich das Wetter in Osaka über Web-API (Python)
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Lesen Sie DXF mit Python
Täglicher AtCoder # 53 in Python
Verwenden Sie config.ini mit Python
Täglicher AtCoder # 33 in Python