2017-08-31 2 views
0

J'essaie d'écrire un petit script qui récupère les détails de mes utilisateurs à partir du pool d'utilisateurs aws cognito. Bien que mon SDK boto3 a accès à mon S3, DynamoDB etc », lors d'une tentative:Comment autoriser l'accès à CognitoIdentityProvider sdk dans aws boto3

import boto3 
client = boto3.client('cognito-idp') 
response = client.admin_get_user(
    UserPoolId='XXXXXX', 
    Username='YYYYYY' 
) 

-je obtenir

botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the AdminGetUser operation 

Mais je ne peux pas trouver dans la documentation comment permettre cet accès à mon SDK.

Des suggestions?

Répondre

2

Vous avez besoin d'une politique IAM permettant à l'utilisateur (et par conséquent à ses clés d'accès) ou à la ressource (EC2, fonction Lambda, etc.) d'effectuer l'opération cognito-idp:AdminGetUser. Par exemple, une stratégie en lecture seule pour Cognito:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "cognito-identity:Describe*", 
     "cognito-identity:Get*", 
     "cognito-identity:List*", 
     "cognito-idp:AdminGetUser", 
     "cognito-idp:Describe*", 
     "cognito-idp:List*", 
     ], 
     "Resource": "*" 
    } 
    ] 
}