AWS Secret Manager - предоставляет доступ всем, если задан только определенный список участников.
Я вижу, что здесь есть правило оценки политики для Secrets Manager.
У меня есть политика, прикрепленная к ресурсу диспетчера секретов, как показано ниже
{
"Version" : "2012-10-17",
"Statement" : [ {
"Sid" : "minimumNeeded",
"Effect" : "Allow",
"Principal" : {
"AWS" : [ "arn:aws:sts::SLJFLSDKFJLSJDKF:assumed-role/xxx/USER1", "arn:aws:sts::SLJFLSDKFJLSJDKF:assumed-role/xxx/USER2" ]
},
"Action" : "secretsmanager:*",
"Resource" : "*"
}]
}
Когда другой пользователь пытался выполнить
put-secret-value
от aws CLI, нацеленного на указанный выше ресурс, он работал, и указанная выше политика не остановила их. Как я понимаю из приведенного выше документа AWS:
- ПОЛЬЗОВАТЕЛЬ2 будет иметь РАЗРЕШЕНИЕ, если роль XXX явно разрешила операции диспетчера секретов.
Верно ли это предположение? Если да, как я могу заблокировать всех, кроме определенных лиц?
С уважением,
2 ответа
При доступе к ресурсу в той же учетной записи, если либо политика ресурсов явно предоставляет доступ, либо политика пользователей / ролей IAM явно предоставляет доступ, доступ предоставляется.
При использовании политик ресурсов для доступа между учетными записями как политика IAM пользователя / роли, так и политика ресурсов должны предоставлять доступ.
Кроме того, если где-либо есть инструкция DENY (IAM или политика ресурсов), доступ запрещен . Если доступ нигде явно не предоставлен, он запрещен по умолчанию (локальная учетная запись или перекрестная учетная запись).
Вы не указали, находятся ли пользователи в одной учетной записи или в разных учетных записях, но похоже, что они находятся в одной учетной записи. Если пользователь находится в той же учетной записи, либо ему не должен быть предоставлен доступ в их политике IAM, либо в политике ресурсов должен быть явный запрос deny. Вы также можете изменить свою политику на отказ в сочетании с объявлением «не принципала». Тогда только разрешенные участники могут получить доступ к секрету, если это разрешено их политикой пользователей / ролей IAM.
I think I would need to do
NotPrincipal with DENY
as mentioned in the docs
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html