[英]AWS Lambda SQS Trigger Assume role
我接到了一項任務,要使用來自外部公司的 SQS 隊列中的消息,這會向我返回一個存儲桶和密鑰,我將從中復制文件。 這家外部公司設置了一個我可以承擔的角色,讓我可以訪問 SQS 隊列和 S3 存儲桶,但我遇到了問題。 我如何為我的 Lambda 觸發器承擔外部角色? 這可能嗎?
您將擔任 Lambda 中的角色,然后使用臨時憑證與外部 AWS 賬戶進行交互。
以 python 為例。
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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.