NAME
Amazon::S3::Thin::Credentials - AWS credentials data container
SYNOPSIS
my
$credentials
= Amazon::S3::Thin::Credentials->new(
$aws_access_key_id
,
$aws_secret_access_key
,
# optional:
$aws_session_token
);
my
$key
=
$credentials
->access_key_id();
my
$secret
=
$credentials
->secret_access_key();
my
$session_token
=
$credentials
->session_token();
1;
DESCRIPTION
This module contains AWS credentials and provide getters to the data.
# Load from arguments
my
$creds
= Amazon::S3::Thin::Credentials->new(
$access_key
,
$secret_key
,
$session_token
);
# Load from environment
my
$creds
= Amazon::S3::Thin::Credentials->from_env;
# Load from instance profile
my
$creds
= Amazon::S3::Thin::Credentials->from_metadata(
role
=>
'foo'
,
version
=> 2);
# Load from ECS task role
my
$creds
= Amazon::S3::Thin::Credentials->from_ecs_container;
from_env()
Instantiate Amazon::S3::Thin::Credentials
and attempts to populate the credentials from current environment.
Croaks if either AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY are not set but supports the optional AWS_SESSION_TOKEN variable.
my
$creds
= Amazon::S3::Thin::Credentials->from_env;
from_metadata()
Instantiate Amazon::S3::Thin::Credentials
and attempts to populate the credentials from the EC2 metadata service. An instance can have multiple IAM roles applied so you may optionally specify a role, otherwise the first one will be used.
In November 2019 AWS released version 2 of the instance metadata service which is more secure against Server Side Request Forgery attacks. Using v2 is highly recommended thus it is the default here.
my
$creds
= Amazon::S3::Thin::Credentials->from_metadata(
role
=>
'foo'
,
# The name of the IAM role on the instance
version
=> 2
# Metadata service version - either 1 or 2
);
from_ecs_container()
Instantiate Amazon::S3::Thin::Credentials
and attempts to populate the credentials from the ECS task role.
my
$creds
= Amazon::S3::Thin::Credentials->from_ecs_container;
access_key_id()
Returns access_key_id
secret_access_key()
Returns secret_access_key
session_token()
Returns session_token