L'objectif de mon document de politique:Utilisation de la condition AWS nulle pour éviter les balises vides ou manquantes?
- Empêcher la création de ressources si elle ne dispose pas de balises appropriées
- exigent que certaines valeurs sont données à spécifiques balises (par exemple étiquette env doit être soit dev OU stg OU prd, etc.)
Le n ° 2 fonctionne comme prévu; cependant, si l'utilisateur crée une instance EC2 avec la balise vide ou oublie simplement de l'ajouter, la politique permet toujours à l'utilisateur de créer l'instance.
J'ai essayé l'opérateur nul (référencé here), mais cela ne semble pas fonctionner.
Une autre tentative a été d'utiliser une condition aws correspondant: valeurs tag-clés (référence here), mais il ne semble fonctionner lors de la vérification d'une valeur unique avec un opérateur de comparaison de type corde
C'est une condition préalable pour une fonction Lambda pour désactiver les instances de dev.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RequireEnvTags",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"ForAnyValue:StringNotEquals": {
"ec2:ResourceTag/env": [
"dev",
"stg",
"prd",
"dev-noshutdown"
]
}
},
"Resource": [
"*"
]
},
{
"Sid": "RequireDataSensitivity1",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"ForAnyValue:StringNotEquals": {
"ec2:ResourceTag/data-sensitivity": [
"public",
"internal",
"confidential",
"highly confidential"
]
}
},
"Resource": [
"*"
]
},
{
"Sid": "NullChecksDontSeemToWork0",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"Null": {
"ec2:ResourceTag/Name": "true"
}
},
"Resource": [
"*"
]
},
{
"Sid": "NullChecksDontSeemToWork1",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"Null": {
"ec2:ResourceTag/team": "true"
}
},
"Resource": [
"*"
]
}
]
}