AWS IAM principal identifiers 可以设置多长时间,超过限制怎么办?

How long does AWS IAM's principle identifiers can be set and how to do if it exceeds the limitation?

如果将 AWS IAM 策略文档设置为

data "aws_iam_policy_document" "example" {
  statement {
    effect = "Allow"
    actions = [
      "codeartifact:CreateRepository",
    ]
    resources = [
      "${aws_codeartifact_domain.example.arn}",
    ]
    principals {
      identifiers = [
        "arn:aws:iam::1234567890:role/xxx-1",
        "arn:aws:iam::1234567890:role/xxx-2",
        "arn:aws:iam::1234567890:role/xxx-3",
        "arn:aws:iam::1234567890:role/xxx-4",
        # ... until 100 or 1000 or 10000 ...
      ]
    }
  }
}

这里可以设置多少个标识符?超过限制怎么办?

另外一个问题,arn:aws:iam::1234567890:role/之后可以用*吗?

据我所知(the official documentation 告诉我们)您可以继续添加任意数量的委托人,只要您的策略保持在 IAM 策略限制大小以内,这取决于什么您将其附加到:

  • 用户策略大小不能超过 2,048 个字符。
  • 角色策略大小不能超过 10,240 个字符。
  • 组策略大小不能超过 5,120 个字符。

不幸的是,这意味着您问题的答案“取决于”您的政策中有多少其他内容(即资源和行动)。

要绕过此限制,您必须将主体拆分为多个策略,然后附加它们。然后你需要担心一个实体可以附加的政策数量,以及你可以在一个账户中拥有的政策数量(参考上面链接的配额页面)。