AssumeRoleSaml会话的有效期是由角色策略中的"DurationSeconds"参数决定的,默认为3600秒(1小时),最长可以设置为43200秒(12小时)。
以下是使用Python的示例代码,来创建一个AssumeRoleSaml会话并获取其有效期的方法:
import boto3
def get_assumed_role_session_duration(role_arn, principal_arn, saml_assertion):
# 创建一个STS客户端实例
sts_client = boto3.client('sts')
# 调用AssumeRoleWithSAML方法,获取AssumeRoleSaml会话的临时凭证和有效期
response = sts_client.assume_role_with_saml(
RoleArn=role_arn,
PrincipalArn=principal_arn,
SAMLAssertion=saml_assertion,
DurationSeconds=3600 # 可以根据需要设置会话的有效期
)
# 返回会话的有效期
return response['Credentials']['Expiration']
# 示例用法
role_arn = 'arn:aws:iam::account-id:role/role-name'
principal_arn = 'arn:aws:iam::account-id:saml-provider/provider-name'
saml_assertion = 'SAML-assertion-data'
session_duration = get_assumed_role_session_duration(role_arn, principal_arn, saml_assertion)
print(f"AssumeRoleSaml会话的有效期为:{session_duration}")
在上面的示例中,我们使用boto3
库创建了一个STS(AWS Security Token Service)客户端实例。然后,我们调用了assume_role_with_saml
方法来获取AssumeRoleSaml会话的临时凭证和有效期。最后,我们打印出了会话的有效期。
请注意,这只是一个示例代码,你需要将其中的参数替换为你自己的实际值,如role_arn
、principal_arn
和saml_assertion
。