Implemented get-caller-identity returning real data depending on the access key used.
This commit is contained in:
parent
d9cb1f2d35
commit
d931204266
3 changed files with 96 additions and 17 deletions
|
|
@ -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
|
||||
self.arn = role_arn + "/" + role_session_name
|
||||
self.policy = policy
|
||||
now = datetime.datetime.utcnow()
|
||||
self.expiration = now + datetime.timedelta(seconds=duration)
|
||||
|
|
@ -36,6 +36,10 @@ class AssumedRole(BaseModel):
|
|||
def expiration_ISO8601(self):
|
||||
return iso_8601_datetime_with_milliseconds(self.expiration)
|
||||
|
||||
@property
|
||||
def user_id(self):
|
||||
return self.assumed_role_id + ":" + self.session_name
|
||||
|
||||
|
||||
class STSBackend(BaseBackend):
|
||||
|
||||
|
|
@ -55,5 +59,11 @@ class STSBackend(BaseBackend):
|
|||
self.assumed_roles.append(role)
|
||||
return role
|
||||
|
||||
def get_assumed_role_from_access_key(self, access_key_id):
|
||||
for assumed_role in self.assumed_roles:
|
||||
if assumed_role.access_key_id == access_key_id:
|
||||
return assumed_role
|
||||
return None
|
||||
|
||||
|
||||
sts_backend = STSBackend()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue