altimeter.aws.auth package¶
Submodules¶
altimeter.aws.auth.accessor module¶
An Accessor consists of a list of MultiHopAccessors. It provides a method get_session which will iterate through the MultiHopAccessors until a session can be obtained to a target account.
-
class
Accessor
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
An Accessor consists of a list of MultiHopAccessors. It provides a method get_session which will iterate through the MultiHopAccessors until a session can be obtained to a target account. If an Accessor has no MultiHopAccessors it simply uses the local session to attempt to access the account. If the session does not match the requested target account id, ValueError is thrown.
- Parameters
multi_hop_accessors – List of MultiHopAccessors
credentials_cache – AWSCredentialsCache
-
cache_creds
: bool¶
-
credentials_cache
: altimeter.aws.auth.cache.AWSCredentialsCache¶
-
classmethod
from_file
(filepath, cache_creds=True)¶ Create an Accessor from json content in a file
- Parameters
filepath (
Path
) – Path to json accessor definition- Return type
- Returns
Accessor
-
get_session
(account_id, region_name=None)¶ Get a boto3 session for a given account.
- Parameters
account_id (
str
) – target account idregion_name (
Optional
[str
]) – session region name
- Return type
Session
- Returns
boto3.Session object
-
multi_hop_accessors
: List[altimeter.aws.auth.multi_hop_accessor.MultiHopAccessor]¶
altimeter.aws.auth.cache module¶
Classes for caching AWS credentials
-
class
AWSCredentials
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
Represents a set of AWS Credentials
- Parameters
access_key_id – AWS access key id
secret_access_key – AWS secret access key
session_token – AWS session token
expiration – Session expiration as an epoch timestamp int
-
access_key_id
: str¶
-
expiration
: int¶
-
get_session
(region_name=None)¶ Build a boto3.Session using these credentials
- Return type
Session
-
is_expired
()¶ Determine if this cache value is within 60 seconds of expiry
- Return type
bool
- Returns
True if this session is value is expired, else False.
-
secret_access_key
: str¶
-
session_token
: str¶
-
class
AWSCredentialsCache
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
An AWSCredentialsCache is a cache for AWSCredentials.
-
static
build_cache_key
(account_id, role_name, role_session_name)¶ - Return type
str
-
cache
: Dict[str, altimeter.aws.auth.cache.AWSCredentials]¶
-
get
(account_id, role_name, role_session_name, region_name=None)¶ Get a boto3 Session from AWSCredentials in the cache. Return None if no matching AWSCredentials were found.
- Parameters
account_id (
str
) – session account idrole_name (
str
) – session role namerole_session_name (
str
) – session role session nameregion_name (
Optional
[str
]) – session region_name
- Return type
Optional
[Session
]- Returns
boto3.Session from credentials if cached, else None.
-
put
(credentials, account_id, role_name, role_session_name)¶ Put an AWSCredentials object into the cache.
- Parameters
credentials (
AWSCredentials
) – credentials to cacheaccount_id (
str
) – session account idrole_name (
str
) – session role namerole_session_name (
str
) – session role session name
- Return type
None
-
static
altimeter.aws.auth.exceptions module¶
Exceptions for access related errors.
-
exception
AccountAuthException
¶ Bases:
altimeter.core.exceptions.AltimeterException
Exception indicating auth was unable to be obtained to an account.
altimeter.aws.auth.multi_hop_accessor module¶
A MultiHopAccessor contains a list of AccessSteps defining how to gain access to an account via role assumption(s).
-
class
AccessStep
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
Represents a single access step to get to an account.
- Parameters
role_name – role name for this step
account_id – account_id for this step. If empty this step is assumed to be the last in a chain of multiple AccessSteps
external_id – external_id to use for access (if needed).
-
account_id
: Optional[str]¶
-
external_id
: Optional[str]¶
-
role_name
: str¶
-
classmethod
substitute_external_id_from_env
(external_id)¶ - Return type
Optional
[str
]
-
class
MultiHopAccessor
(**data)¶ Bases:
altimeter.core.base_model.BaseImmutableModel
A MultiHopAccessor contains a list of AccessSteps defining how to gain access to an account via role assumption(s).
- Parameters
role_session_name – role session name to use for session creation.
access_steps – list of AccessSteps defining how to access a final destination account.
-
access_steps
: List[altimeter.aws.auth.multi_hop_accessor.AccessStep]¶
-
get_session
(account_id, region_name=None, credentials_cache=None)¶ Get a session for an account_id by iterating through the
AccessStep`s of this :class:
.MultiHopAccessor`.- Parameters
account_id (
str
) – account to accessregion_name (
Optional
[str
]) – region to use during session creation.
- Return type
Session
- Returns
boto3 Session for accessing account_id
-
role_session_name
: str¶
-
classmethod
valid_access_steps
(access_steps)¶ - Return type
List
[AccessStep
]