Obtenha um token de sessão com o AWS STS usando um AWS SDK
O exemplo de código a seguir mostra como obter um token de sessão com o AWS STS e usá-lo para realizar uma ação de serviço que exija um token de MFA.
- Python
-
- SDK para Python (Boto3).
-
Para saber mais sobre como configurar e executar esse exemplo, consulte o GitHub.
Obtenha um token de sessão passando um token de MFA e use-o para listar buckets do Amazon S3 para a conta.
def list_buckets_with_session_token_with_mfa(mfa_serial_number, mfa_totp, sts_client):
"""
Gets a session token with MFA credentials and uses the temporary session
credentials to list Amazon S3 buckets.
Requires an MFA device serial number and token.
:param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
device, this is an Amazon Resource Name (ARN).
:param mfa_totp: A time-based, one-time password issued by the MFA device.
:param sts_client: A Boto3 STS instance that has permission to assume the role.
"""
if mfa_serial_number is not None:
response = sts_client.get_session_token(
SerialNumber=mfa_serial_number, TokenCode=mfa_totp)
else:
response = sts_client.get_session_token()
temp_credentials = response['Credentials']
s3_resource = boto3.resource(
's3',
aws_access_key_id=temp_credentials['AccessKeyId'],
aws_secret_access_key=temp_credentials['SecretAccessKey'],
aws_session_token=temp_credentials['SessionToken'])
print(f"Buckets for the account:")
for bucket in s3_resource.buckets.all():
print(bucket.name)
Para obter uma lista completa dos Guias do desenvolvedor do SDK da AWS e exemplos de código, consulte Usar o IAM com um AWS SDK. Este tópico também inclui informações sobre como começar e detalhes sobre versões anteriores do SDK.