[英]Send message from lambda account A to an SQS of account B
我需要從 lambda 賬戶 A 發送消息到另一個賬戶 B 的 SQS。
在帳戶 B 中,我創建了這樣的 sq:
Resources:
SampleSqs:
Type: "AWS::SQS::Queue"
Properties:
QueueName: sample-sqs-service-queue.fifo
FifoQueue: true
VisibilityTimeout: 400
ContentBasedDeduplication: true
並將訪問角色策略創建為:
SqsRole:
Type: AWS::IAM::Role
Properties:
RoleName: sample-sqs-Account-Role
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS:
- arn:aws:iam::<Account-A>:root
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSQSFullAccess
我還嘗試將 sqs 隊列添加為語句部分下的資源,但在部署時失敗並顯示以下消息:
SqsRole - 具有禁止的字段資源(服務:AmazonIdentityManagement;狀態代碼:400;錯誤代碼:MalformedPolicyDocument;
在帳戶 A 中,我試圖通過導入隊列 url 來訪問帳戶 B sqs SampleSqs,但我的訪問被拒絕,帳戶 A 的代碼:
iamRoleStatements:
- Effect: Allow
Action:
- sts:AssumeRole
Resource:
- arn:aws:iam::$<AccountB>:role/sample-sqs-Account-Role
試圖通過我的代碼中的 url 訪問該 sqs 但訪問被拒絕。
我對 aws 和無服務器框架很陌生,有人可以幫助我在兩個接口中設置我需要的無服務器代碼設置,以使帳戶 B sqs 隊列可以訪問帳戶 A。
我嘗試將 sqs 隊列作為資源添加到 sqsRole 的語句部分下,但在部署時失敗並顯示以下消息:
SqsRole - 具有禁止的字段資源(服務:AmazonIdentityManagement;狀態代碼:400;錯誤代碼:MalformedPolicyDocument;
您是否檢查過錯誤的亞馬遜文檔: https://aws.amazon.com/premiumsupport/knowledge-center/iam-principal-policy/
更重要的是,我不知道你在這里的確切情況,但我認為與其在帳戶中創建一個完整的角色被假定為訪問 sqs,不如通過更改 sqs 上的策略來簡單地授予必要的權限會更容易,也可能更合適(資源策略)。
這里有非常容易理解的直接解決此用例的示例: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-examples-of-sqs-policies.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.