Je souhaite utiliser des politiques basées sur les ressources pour contrôler l’accès aux secrets dans AWS Secrets Manager.
Brève description
Utilisez des politiques basées sur les ressources pour spécifier l’accès des utilisateurs à un secret et les actions qu’un utilisateur d’AWS Identity and Access Management (IAM) peut effectuer.
Remarque : Un secret est défini comme une ressource dans Secrets Manager.
Vous pouvez utiliser les politiques basées sur les ressources de Secrets Manager dans les scénarios courants suivants :
- Partager un secret entre comptes AWS.
- Ajouter un refus explicite au secret pour appliquer des autorisations.
L’exemple de politique basée sur les ressources suivant utilise les éléments Effet, Action, Ressource et Principal :
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Pour appliquer une politique basée sur les ressources dans Secrets Manager, procédez comme suit :
-
Créez un secret, puis notez son ARN.
-
Copiez et collez cette politique dans un éditeur de texte, puis enregistrez-la dans un fichier JSON, tel que my_explicit_deny_policy.json :
{ "Version": "2012-10-17","Statement": [
{
"Effect": "Deny",
"Action": "secretsmanager:GetSecretValue",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
-
Exécutez la commande put-resource-policy de l’AWS CLI pour joindre une politique de ressources au secret appliquant le refus explicite de la récupération de la valeur secrète :
aws secretsmanager put-resource-policy --secret-id My_Resource_Secret --resource-policy file:// My_explicit_deny_Policy.json
Vous recevez un résultat similaire à celui-ci :
{"ARN": "arn:aws:secretsmanager:<your region>:123456789999:secret:My_Resource_Secret",
"Name": "My_Resource_Secret"
}
Remarque : L’autorisation Déchiffrer d’AWS Key Management Service (AWS KMS) n’est requise que si vous chiffrez votre secret à l’aide de clés AWS KMS. Lorsque le secret est chiffré par une clé AWS KMS par défaut, le principal IAM d’un compte tiers ne peut pas récupérer le secret.
Pour en savoir plus, consultez la page Associer une politique d’autorisations à un secret AWS Secrets Manager.