in sagemaker_studio_sparkmagic_lib/emr.py [0:0]
def _get_boto3_session(self, role_arn):
"""
Allows cross account cluster access
"""
if not role_arn:
return boto3.session.Session()
else:
logger.info(f"Assuming role: {role_arn}")
sts_client = boto3.client("sts")
try:
assume_role_object = sts_client.assume_role(
RoleArn=role_arn, RoleSessionName="SageMakerStudioUser"
)
except botocore.exceptions.ClientError as ce:
logger.debug(
f"Failed to assume role: ({role_arn}) details. {ce.response}"
)
raise ValueError(
f"Unable to assume role(arn: {role_arn}). Ensure permissions are setup correctly"
f' Error: {ce.response["Error"]}'
) from None
return boto3.Session(
aws_access_key_id=assume_role_object["Credentials"]["AccessKeyId"],
aws_secret_access_key=assume_role_object["Credentials"][
"SecretAccessKey"
],
aws_session_token=assume_role_object["Credentials"]["SessionToken"],
)