Pra*_*egi 3 amazon-sqs aws-cdk
我有一个代码,我需要将发送消息授予现有的 sqs 队列。
我在 aws-cdk 中有这段代码。但这是行不通的。没有添加访问权限。
const sqsQ = sqs.Queue.fromQueueArn(this, "some-id", "arn:aws:sqs:us-east-2:SOME-ACCOUNT:QUEUE-NAME");
sqsQ.grantSendMessages(new iam.ServicePrincipal("events.amazonaws.com"));
Run Code Online (Sandbox Code Playgroud)
我认为不可能向 CDK 中的现有资源授予权限。每当您使用类似的东西将资源导入堆栈时,fromQueueArn您都可以将其视为对该资源的只读引用。
换句话说,您只能更新由您的 CDK 代码管理的资源。
你基本上有两个选择:
尝试这样的事情
sqsQ.addToResourcePolicy(
new PolicyStatement({
effect: Effect.ALLOW,
principals: [new ServicePrincipal(ServicePrincipals.EVENTS)],
actions: ["sqs:SendMessage"],
resources: [sqsQ.queueArn],
conditions: {
ArnEquals: {
"aws:SourceArn": <ruleArn or whatever needs permissions here>,
},
},
})
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9299 次 |
| 最近记录: |