Amazon web services AWS Lambda SQS触发器承担角色
我的任务是使用来自外部公司的SQS队列中的消息,该队列返回一个bucket和密钥,我将从中复制一个文件。这家外部公司已经设置了一个角色,我可以假设它允许我访问SQS队列和S3存储桶,但我有一个问题。我如何假设Lambda触发器的外部角色?这可能吗?您将在Lambda中担任角色,然后使用临时凭据与外部AWS帐户交互 python示例Amazon web services AWS Lambda SQS触发器承担角色,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我的任务是使用来自外部公司的SQS队列中的消息,该队列返回一个bucket和密钥,我将从中复制一个文件。这家外部公司已经设置了一个角色,我可以假设它允许我访问SQS队列和S3存储桶,但我有一个问题。我如何假设Lambda触发器的外部角色?这可能吗?您将在Lambda中担任角色,然后使用临时凭据与外部AWS帐户交互 python示例 import boto3 sts = boto3.client('sts') role = sts.assume_role( RoleArn="a
import boto3
sts = boto3.client('sts')
role = sts.assume_role(
RoleArn="arn:aws:iam::EXTERNAL_COMPANY_ACCOUND_ID:role/EXTERNAL_COMPANY_ROLE",
ExternalId="EXTERNAL_ID_CONFIGURED",
RoleSessionName="RoleSessionNameYouWant")
credentials = role['Credentials']
# Interact with resoures from the external company account
external_session = boto3.Session(
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken'])
s3 = external_session.client('s3'),
sqs = external_session.client('sqs')
外部ID是可选的,但在将角色指定给第三方以避免冲突时非常重要。如果没有为您的角色配置外部id,请让第三方为您的角色配置外部id。当然,这没问题,非常简单。我的问题是关于使用SQS来触发lambda的,但是我想用作触发器的SQS队列在另一个帐户上。我怎样才能让触发器使用假定的角色?哦,我明白了!谢谢你的澄清。不可能使用外部角色添加lambda触发器,但实际上您甚至不需要角色,SQS支持跨帐户访问,下面是一篇解释其工作原理的文章: