Derive ARN of AssumedRoles from its role ARN and session name.

This commit is contained in:
acsbendi 2019-08-21 12:57:45 +02:00
parent 24dcdb7453
commit 27fdbb7736
2 changed files with 6 additions and 2 deletions

View File

@ -106,7 +106,7 @@ class AssumedRoleAccessKey(object):
self._access_key_id = access_key_id
self._secret_access_key = assumed_role.secret_access_key
self._session_token = assumed_role.session_token
self._owner_role_name = assumed_role.arn.split("/")[-1]
self._owner_role_name = assumed_role.role_arn.split("/")[-1]
self._session_name = assumed_role.session_name
if headers["X-Amz-Security-Token"] != self._session_token:
raise CreateAccessKeyFailure(reason="InvalidToken")

View File

@ -22,7 +22,7 @@ class AssumedRole(BaseModel):
def __init__(self, role_session_name, role_arn, policy, duration, external_id):
self.session_name = role_session_name
self.arn = role_arn + "/" + role_session_name
self.role_arn = role_arn
self.policy = policy
now = datetime.datetime.utcnow()
self.expiration = now + datetime.timedelta(seconds=duration)
@ -40,6 +40,10 @@ class AssumedRole(BaseModel):
def user_id(self):
return self.assumed_role_id + ":" + self.session_name
@property
def arn(self):
return self.role_arn + "/" + self.session_name
class STSBackend(BaseBackend):