Ограничение AWS SecretsManager с помощью политики IAM не работает должным образом - PullRequest
0 голосов
/ 04 июня 2019

я запутался с управлением политикой IAM для Secrets manager.

Настройка:

  • Учетная запись AWS с ролями IAM, определенными для пользователей
  • Каждая роль IAM пользователя должна получать разрешения на хранение секретов в соответствии со схемой именования

Проблема:

  • Action: secretsmanager:* не работает, пользователи могут создавать секреты, но не могут их читать.

  • , чтобы разрешить getSecretValue, я должен указать второе утверждение политики, которое явно дает доступ.

  • Хотя условие ForAnyValue:StringLike работает в первом операторе, если я добавлю его ко второму, чтобы ограничить количество пользователей, оно выдаст отказ в разрешении.

Вот мои политические заявления, которые являются единственным способом заставить его работать.Но, как я понимаю, было бы хорошо иметь только первое утверждение.

Я отображаю политики через оболочку Python.Так что, пожалуйста, не путайте со строками формата

{
        "Effect": "Allow",
        "Action": [
            "secretsmanager:*"
        ],
        "Resource": [
            f"arn:aws:secretsmanager:{region}:{account_number}:secret:{role_name}-*"
        ],
        "Condition": {
            "ForAnyValue:StringLike": {
                "secretsmanager:Name": f"{role_name}-*"
            }
        }
    }

    allow_user_to_list_secrets_manager = {
        "Effect": "Allow",
        "Action":  [
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecrets",
                "secretsmanager:GetSecretValue"
            ],
        "Resource": [
            f"*"
        ]
    }

ОБНОВЛЕНИЕ Я до сих пор не до конца понял, почему мне нужны две политики, но удаление элемента условия решило мою проблему.Я получил это из документов AWS, но это, кажется, запутывает заявление о политике.Также работает фильтрация по ресурсу.

...