Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

245
Views
Acceda a aws dynamodb usando boto3 cuando se haya configurado MFA. Obtener ClientError

Anteriormente, cuando no configuré MFA para iniciar sesión en la consola de AWS, me conecté a dynamodb mediante

 dynamo = boto3.resource('dynamodb', region_name='ap-northeast-2', endpoint_url='http://dynamodb.ap-northeast-2.amazonaws.com') table = dynamo.Table('tablename')

y preguntar a esa mesa estaba perfectamente bien.

 response = table.query( KeyConditionExpression =Key("user_id").eq(123123) )

Después de configurar MFA para seguridad adicional para iniciar sesión en la consola de AWS y ahora, cuando ejecuto el código anterior, obtengo:

 ClientError: An error occurred (UnrecognizedClientException) when calling the Query operation: The security token included in the request is invalid.

Yo uso el túnel para RDB, ¿hay algo así que pueda usar para conectarme a dynamodb o hay algún permiso que necesito para acceder a dynamodb?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Cuando habilita MFA, SDK no sabe automáticamente cómo trabajar con él. Las claves SECRET y API de su usuario habitual de IAM ya no son suficientes. En su lugar, debe usar credenciales temporales creadas solo para su sesión de MFA.

Para hacer que MFA funcione con boto3, debe llamar explícitamente a get_session_token :

Los usuarios de IAM habilitados para MFA tendrían que llamar a GetSessionToken y enviar un código MFA asociado con su dispositivo MFA. Utilizando las credenciales de seguridad temporales que se devuelven de la llamada, los usuarios de IAM pueden realizar llamadas programáticas a las operaciones de API que requieren autenticación MFA.

Usando get_session_token puede llamar al servicio sts que le proporcionará credenciales temporales basadas en sus detalles de MFA:

 sts = boto3.client('sts') mfa_response = sts.get_session_token( DurationSeconds=123, SerialNumber='string', TokenCode='string' )

La llamada devolverá las credenciales en mfa_response que puede usar para crear una nueva sesión de boto3 . Por ejemplo:

 mfa_session = boto3.session.Session( aws_access_key_id=mfa_session['Credentials']['AccessKeyId'], aws_secret_access_key=mfa_session['Credentials']['SecretAccessKey'], aws_session_token=mfa_session['Credentials']['SessionToken']) dynamo = mfa_session.resource('dynamodb', ...) # and the rest of the code
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!