gpt4 book ai didi

amazon-ec2 - 使用 IAM 角色进行跨账户 SQS 访问

转载 作者:行者123 更新时间:2023-12-05 06:19:43 26 4
gpt4 key购买 nike

我在账户 A 中运行 EC2 实例并在账户 A 和 B 中有 SQS 队列。我的应用程序在账户 A 的 EC2 实例上运行。消息监听器正在获取 queueUrl 并轮询来自账户 A 中的队列的消息或 B。这是获取 queueUrl 的代码示例,如果我们获取帐户 A 的 queueUrl,它工作正常,但如果我们提供帐户 B sqs 队列作为输入参数,则失败:

public String getQueueUrl(String queueOwnerAccountId, String region, String queueName) throws AwsException {
try {
AmazonSQS sqs = AmazonSQSClientBuilder.standard().withRegion(Regions.fromName(region)).build();
GetQueueUrlRequest getQueueUrlRequest = new GetQueueUrlRequest(queueName).withQueueOwnerAWSAccountId(queueOwnerAccountId);
GetQueueUrlResult result = sqs.getQueueUrl(getQueueUrlRequest);
return result.getQueueUrl();
} catch (QueueDoesNotExistException e) {
throwAwsException("With accountId:"+queueOwnerAccountId+" ,Queue: "+queueName+" does not exists in region: "+region);
} catch (AmazonClientException e) {
throwAwsException("Invalid destination address:"+e.getMessage());
}
return null;

我已将策略(策略具有两个帐户队列的 ARN)添加到帐户 A 中两个帐户队列的 IAM 角色。如果我缺少任何设置,请告诉我。谢谢。

最佳答案

我已在账户 A 中为 SQS 创建策略并添加了 ARN 资源(对于账户 B 中的队列)arn:aws:sqs:Region:AccountID_B:QueueName 然后将该策略附加到一个角色以及附加到帐户 A 的 EC2 实例的相同角色。右键单击帐户 B 中的队列,然后单击 添加权限。弹出窗口将显示为提供原则操作Principle是aws accountId谁可以访问这个queue(这里我们可以指定AccountA accountId)&action是permission的集合(API标签该队列所需的访问权限)。

关于amazon-ec2 - 使用 IAM 角色进行跨账户 SQS 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60769431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com