Ограничение AWS SecretsManager через политику IAM не работает должным образом

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

Настроить:

  • Учетная запись 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, но это, кажется, запутывает заявление о политике. Фильтрация по ресурсам также работает.

0 ответов

Другие вопросы по тегам