簡體   English   中英

AWS Lambda SQS 觸發器承擔角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM