Amazon web services 如何向队列添加权限以允许不同帐户中的用户对队列拥有权限

Amazon web services 如何向队列添加权限以允许不同帐户中的用户对队列拥有权限,amazon-web-services,amazon-sqs,amazon-iam,Amazon Web Services,Amazon Sqs,Amazon Iam,应(IMO)向其他帐户中的用户添加队列权限 我犯了一个错误 值[arn:aws:iam::2222:user/user。x@mycompany.com]为了 参数PrincipalId无效。原因:无法验证。(服务: AmazonSQS;状态代码:400;错误代码:InvalidParameterValue 有人知道如何以编程方式让不同帐户中的特定用户访问队列吗 这与我通过sqs web控制台添加权限时看到的用户arn相同。文档的这一部分有跨帐户sqs访问策略的示例: 您需要在队列级别和其他帐户中

应(IMO)向其他帐户中的用户添加队列权限

我犯了一个错误

值[arn:aws:iam::2222:user/user。x@mycompany.com]为了 参数PrincipalId无效。原因:无法验证。(服务: AmazonSQS;状态代码:400;错误代码:InvalidParameterValue

有人知道如何以编程方式让不同帐户中的特定用户访问队列吗


这与我通过sqs web控制台添加权限时看到的用户arn相同。

文档的这一部分有跨帐户sqs访问策略的示例:

您需要在队列级别和其他帐户中的主体上应用策略

例如,在队列级别

sqs.addPermission("https://sqs.eu-west-1.amazonaws.com/111111111111/queueName", "remoteAccess",
        Arrays.asList("arn:aws:iam::222222222222:user/user.x@mycompany.com"), Arrays.asList(SQSActions.SendMessage.name()));
如果您确实希望授予特定用户、组或角色的访问权限,可以使用
主体
字段,如下所示:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {"AWS": "111122223333"},
    "Action": [
      "sqs:SendMessage",
      "sqs:ReceiveMessage"
    ],
    "Resource": ["arn:aws:sqs:*:123456789012:queue1"],
  }
}
在另一个帐户中,对于需要访问队列的角色或用户(显然可以限制SQS API列表,这只是一个示例)


我只想给另一个帐户上的某个特定用户授予访问权限。不是每个用户,在该链接上我尝试执行类似示例4的操作。这不是问题,AWS负责人不需要是帐户,它可以是特定的用户、组或角色。我将编辑答案
"Principal": {
         "AWS": [
            "arn:aws:iam::111122223333:role/role1",
            "arn:aws:iam::111122223333:user/username1"
         ]
      },
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sqs:*",
    "Resource": "arn:aws:sqs:*:123456789012:queue1"
  }
}