Accéder aux ressources S3 via Cognito en Python

Objectif

Voici le code Python qui obtient des informations d'identification temporaires via Cognito et utilise ces informations pour accéder à S3. Quant à Python, seule une implémentation incomplète a été abandonnée, je vais donc la publier.

Préparation

Du côté de Cognito, accordez à l'avance l'autorité minimale requise à la ressource S3 dans le rôle non authentifié.

la mise en oeuvre

Ci-dessous le code.

cognito-s3.py


        client = boto3.client('cognito-identity', 'ap-northeast-1')

        #Obtenez l'ID d'authentification de Cognito lors du premier accès
        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'])

        #Obtenez des informations d'identification pour établir une session lors du deuxième accès
        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

        #Accéder à l'objet S3 avec des informations d'identification
        session = Session(aws_access_key_id=accessKey,
                  aws_secret_access_key=secretKey,
                  aws_session_token=token, #N'oubliez pas le jeton!
                  region_name='ap-northeast-1')
        s3 = session.resource('s3')
        obj = s3.Object(bucket_name='<BUCKET NAME>', key='<KEY NAME>')

        #Voici un exemple de lecture et de renvoi simples de la longueur
        response = obj.get()
        data = response['Body'].read()
        print len(data)

Recommended Posts

Accéder aux ressources S3 via Cognito en Python
Essayez l'accès au registre PLC en Python
Accéder à l'API Twitter avec Python
Relancé de "pas d'accès Internet" en Python
PUT gzip directement dans S3 en Python
Accès exclusif aux fichiers entre les processus en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Géocodage en python
SendKeys en Python
Obtenez la météo à Osaka via l'API Web (python)
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Obtenir des données de la base de données via ODBC avec Python (Access)
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Modifier les polices en Python
Motif singleton en Python
Lire DXF avec python
Daily AtCoder # 53 en Python
Utilisez config.ini avec Python
Daily AtCoder # 33 en Python