Amazon web services 在另一个帐户中担任角色后还原为AWS Lambda执行角色
我有一个Lambda函数,它成功地在另一个帐户中扮演角色,从其API下载WAF命中 我还需要从执行Lambda的帐户中获取SSM参数。当然,我可以先做这一步,然后再承担这个角色Amazon web services 在另一个帐户中担任角色后还原为AWS Lambda执行角色,amazon-web-services,aws-lambda,aws-iam,Amazon Web Services,Aws Lambda,Aws Iam,我有一个Lambda函数,它成功地在另一个帐户中扮演角色,从其API下载WAF命中 我还需要从执行Lambda的帐户中获取SSM参数。当然,我可以先做这一步,然后再承担这个角色 但我想知道是否有办法恢复到Lambda本身的执行角色。如果将来可能会出现一些链接?您的代码实际上不会“交换”到不同的角色 而是在代码中指定要使用的凭据 担任角色时,您将使用: import boto3 sts_client = boto3.client('sts') response = sts_client.ass
但我想知道是否有办法恢复到Lambda本身的执行角色。如果将来可能会出现一些链接?您的代码实际上不会“交换”到不同的角色 而是在代码中指定要使用的凭据 担任角色时,您将使用:
import boto3
sts_client = boto3.client('sts')
response = sts_client.assume_role(...)
assumed_session = boto3.Session(
aws_access_key_id=response['Credentials']['AccessKeyId'],
aws_secret_access_key=response['Credentials']['SecretAccessKey'],
aws_session_token=response['Credentials']['SessionToken'])
然后,您可以使用该会话
连接到服务:
# Connect to WAF using assumed_session
waf_client = assumed_session.client('waf')
response = waf_client.get_sampled_requests(...)
以后要使用提供给Lambda函数的默认凭据时,只需使用正常语法:
# Note: No 'Session' here, just the normal way to connect
ssm_client = boto3.client('ssm')
response = client.get_parameter(...)
因此,不要考虑“登录”到一组特定的凭据。相反,当调用服务时,请提供一个使用所需凭据集创建的客户端。然后,您可以在它们之间随意“交换”,因为重要的是每次调用所使用的客户端