2 Answers
- Newest
- Most votes
- Most comments
0
Hello
You cant get the credentials for your current role, so you need to call sts:AssumeRole API.
Here is an example with python boto3.
You can now use the s3_client
to call S3 using the role you just assumed.
import boto3
sts_client = boto3.client('sts')
role_arn = "MyRoleArn"
role_credentials = sts_client.assume_role(
RoleArn=role_arn,
RoleSessionName='MySessionName',
)['Credentials']
print(f"{role_credentials}")
s3_client = boto3.client('s3',
aws_access_key_id=role_credentials['AccessKeyId'],
aws_secret_access_key=role_credentials['SecretAccessKey'],
aws_session_token=role_credentials['SessionToken']
)
NOTE: Be super careful with logging because the
role_credentials
variable continues your actual credentials.
Hope this helps!
//Carl
answered 2 years ago
0
Your question seems to indicate that you are running on an EC2 instance. If you are running code on EC2 instance, the recommended way to get credentials is to use roles for Amazon EC2..
Here is the link to documentation on using temporary credentials, including how to use them with SDKs: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
answered 3 months ago
Relevant content
- asked a year ago
- Accepted Answerasked 2 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated a year ago