Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在另一个帐户中担任角色后还原为AWS Lambda执行角色_Amazon Web Services_Aws Lambda_Aws Iam - Fatal编程技术网

Amazon web services 在另一个帐户中担任角色后还原为AWS Lambda执行角色

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函数,它成功地在另一个帐户中扮演角色,从其API下载WAF命中

我还需要从执行Lambda的帐户中获取SSM参数。当然,我可以先做这一步,然后再承担这个角色


但我想知道是否有办法恢复到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(...)
因此,不要考虑“登录”到一组特定的凭据。相反,当调用服务时,请提供一个使用所需凭据集创建的
客户端。然后,您可以在它们之间随意“交换”,因为重要的是每次调用所使用的客户端