awswrangler/sts.py (13 lines of code) (raw):
"""STS module."""
from __future__ import annotations
import logging
import boto3
from awswrangler import _utils
_logger: logging.Logger = logging.getLogger(__name__)
def get_account_id(boto3_session: boto3.Session | None = None) -> str:
"""Get Account ID.
Parameters
----------
boto3_session
The default boto3 session will be used if **boto3_session** is ``None``.
Returns
-------
Account ID.
Examples
--------
>>> import awswrangler as wr
>>> account_id = wr.sts.get_account_id()
"""
return _utils.client(service_name="sts", session=boto3_session).get_caller_identity()["Account"]
def get_current_identity_arn(boto3_session: boto3.Session | None = None) -> str:
"""Get current user/role ARN.
Parameters
----------
boto3_session
The default boto3 session will be used if **boto3_session** is ``None``.
Returns
-------
User/role ARN.
Examples
--------
>>> import awswrangler as wr
>>> arn = wr.sts.get_current_identity_arn()
"""
return _utils.client(service_name="sts", session=boto3_session).get_caller_identity()["Arn"]
def get_current_identity_name(boto3_session: boto3.Session | None = None) -> str:
"""Get current user/role name.
Parameters
----------
boto3_session
The default boto3 session will be used if **boto3_session** is ``None``.
Returns
-------
User/role name.
Examples
--------
>>> import awswrangler as wr
>>> name = wr.sts.get_current_identity_name()
"""
arn: str = get_current_identity_arn(boto3_session=boto3_session)
name: str = arn.rpartition("/")[-1]
return name