Во-первых, позвольте мне ответить на вопрос напрямую.Это логически то, что делает IAM.
- Оцените все операторы политики идентификации.
- Все ли операторы политики Deny оценивают слишком True.Если это так, отклоните запрос.
- Если какой-либо из операторов политики Разрешить оценивает слишком True.Если это так, примите запрос
- Отклоните запрос, потому что нет оператора allow, который был оценен слишком верно.
Для приведенного выше варианта использования 1:
- Еслиустановлен тэг "allow", пользователю разрешеноЭто связано с тем, что 1 или оба оператора всегда будут истинными.
- Если тэг "allow" не установлен, то пользователю будет отказано.Это потому, что ни одно утверждение не будет правдой.
Чтобы разрешить пользователю доступ только в том случае, если для тега «allow» установлено значение true, необходимо следующее:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"secretsmanager:ResourceTag/allow": "True"
}
}
}
]
}
Вариант использования № 2 выше:
Пользователю всегда будет предоставлен доступ, поскольку первый оператор политики всегда имеет значение true.
Теперь, что, если только разрешить доступ, если и только если для тега "allow" задано слишком true.Вы должны явно отрицать, когда это не так .:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"secretsmanager:ResourceTag/allow": "True"
}
}
},
{
"Effect": "Deny",
"Action": "secretsmanager:*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"secretsmanager:ResourceTag/allow": "True"
}
}
}
]
}
На этот раз мы объявляем политику явного запрета, чтобы гарантировать, что установлен тег "allow".
Теперь для получения дополнительной информации о чудесах IAM.
В логике оценки политики AWS IAM есть 11 решений.6 путей для отказа и только 2 для разрешения.Но этот график должен помочь вам понять это.
В случае несколько операторов в условии несколько операторов "логическое"и значениями "и multi" являются "логические или".