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