use Paws::Credential::AssumeRole;

  my $paws = Paws->new(config => {
    credentials => Paws::Credential::AssumeRole->new(
      DurationSeconds => 60,
      RoleArn => 'arn:....',
      RoleSessionName => 'MySession',


The AssumeRole provider is used to obtain temporary credentials with the AssumeRole STS call. These credentials can further be limited by a Policy document.

Credentials are refreshed with a re-call to STS when they have expired

DurationSeconds: Int (optional)

The number of seconds for which the credentials will be valid

Policy: Str (optional)

A string with an IAM policy that gets merged with the roles capabilities

ExternalId: Str (optional)

A string with the external id of the role

RoleArn: Str

The arn of the role to be assumed

RoleSessionName: Str

The name of the session (will appear in CloudTrail logs, for example)