Подстановочный знак в конце основной части для корзины s3 - PullRequest
0 голосов
/ 20 июня 2019

Я хочу, чтобы роли внутри учетной записи, имеющие общий префикс, могли читать из корзины S3. Например, у нас есть несколько ролей с именами RolePrefix1, RolePrefix2 и т. Д., И мы можем создать больше таких ролей в будущем. Мы хотим, чтобы все роли в учетной записи, которые начинаются с RolePrefix, могли иметь доступ к корзине S3 без необходимости изменения документа политики в будущем.

Моя документация terraform для корзины ведется так:

data "aws_iam_policy_document" "bucket_policy_document" {
  statement {
    effect = "Allow"
    actions = ["s3:GetObject"]

    principals = {
      type = "AWS"
      identifiers = ["arn:aws:iam::111122223333:role/RolePrefix*"]
    }

    resources = ["${aws_s3_bucket.bucket.arn}/*"]
  }
}

Это дает мне следующую ошибку:

Error putting S3 policy: MalformedPolicy: Invalid principal in policy.

Можно ли достичь этой функциональности другим способом?

1 Ответ

1 голос
/ 20 июня 2019

Нельзя использовать подстановочный знак вместе с ARN в поле IAM.Вам разрешено использовать только "*".

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html

"Когда вы указываете пользователей в элементе Principal, вы не можете использовать подстановочный знак (*), означающий" все пользователи "Принципалы всегда должны называть конкретного пользователя или пользователей. "

Обходной путь: Оставьте" Principal ": {" AWS ":" * "} и создайте условие на основе ARNLike и т. Д., Поскольку они принимают пользователя arn с подстановочным знаком всостояние.Пример:

https://aws.amazon.com/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific-iam-role/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...