AWS_SESSION_TOKEN是从STS API返回的临时安全凭证,用于对AWS资源进行临时访问控制。它是AWS Security Token Service(STS)的一部分。 当您通过STS API调用AssumeRole或GetSessionToken等操作时,将获得一个临时访问凭证,其中包含一个临时的AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN。
您可以使用AWS_SESSION_TOKEN执行各种AWS操作,例如调用AWS服务API,访问S3存储桶,创建EC2实例等。临时凭证的过期时间通常较短,通常为1小时,但可以通过STS API请求更长的持续时间。
以下是一个使用AWS SDK for Python(Boto3)的示例,说明如何使用AWS_SESSION_TOKEN进行AWS操作:
import boto3
# 创建一个STS客户端
sts_client = boto3.client('sts')
# 调用AssumeRole操作获取临时访问凭证
response = sts_client.assume_role(
RoleArn='arn:aws:iam::123456789012:role/MyRole',
RoleSessionName='MySession'
)
# 提取临时访问凭证
credentials = response['Credentials']
# 使用临时凭证创建一个S3客户端
s3_client = boto3.client(
's3',
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken']
)
# 使用临时凭证执行S3操作
response = s3_client.list_buckets()
# 打印结果
print(response)
在上面的示例中,我们首先使用AssumeRole操作从STS API中获得了一个临时访问凭证。然后,我们使用该凭证创建了一个S3客户端,并使用该客户端执行了list_buckets操作,并打印了结果。
请注意,示例中的ARN(Amazon Resource Name)和IAM角色名称(RoleArn和RoleSessionName)是示例值,您需要根据自己的实际情况进行替换。