Emma Grove
Emma Grove

Reputation: 148

Python - Create AWS Signature with temporary security credentials

I have read the AWS documentation but I couldn't find an example of using Temporary Security Credentials to authenticate to AWS with Python.

I would like an example of using a temporary security credentials provided by the AWS Security Token Service (AWS STS) to sign a request.

Upvotes: 0

Views: 1596

Answers (1)

Marcin
Marcin

Reputation: 238249

There are several ways you can use STS to get temporary credential. The two most common ones would be:

In both cases the call to these function will give you temp credentials, e.g.:

{
    "Credentials": {
        "AccessKeyId": "AddsdfsdfsdxxxxxxKJ",
        "SecretAccessKey": "TEdsfsdfSfdsfsdfsdfsdclkb/",
        "SessionToken": "FwoGZXIvYXdzEFkaDGgIUSvDdfgsdfgsdfgsMaVYgsSxO8OqRfjHc4se90WbaspOwCtdgZNgeasdfasdfasdf5wrtChz2QCTnR643exObm/zOJzXe9TUkcdODajHtxcgR8r+unzMo+7WxgQYyKGN9kfbCqv3kywk0EvOBCapusYo81fpv8S7j4JQxEwOGC9JZQL6umJ8=",
        "Expiration": "2021-02-17T11:53:31Z"
    }
}

Having these credentials, you create new boto3 session, e.g.:

  new_session = boto3.session.Session(<temp credentails>)

The new_session will allow you to make new boto3 client or resource, e.g.:

 ec2 = new_session.client('ec2')
 s3r = new_session.resource('s3')

And then you can use these new clients/resource as you would normally use them.

Upvotes: 2

Related Questions