Quiero usar políticas basadas en recursos para controlar el acceso a los secretos de AWS Secrets Manager.
Descripción corta
Use las políticas basadas en recursos para especificar el acceso del usuario a un secreto y qué acciones puede realizar de AWS Identity and Access Management (IAM).
Nota: Un secreto se define como un recurso con Secrets Manager.
Puede usar políticas basadas en recursos de Secrets Manager en los siguientes escenarios comunes:
- Compartir un secreto entre cuentas de AWS.
- Agregar una denegación explícita al secreto para aplicar los permisos.
El siguiente ejemplo de política basada en recursos utiliza los elementos Effect, Action, Resource y Principal:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Para aplicar una política basada en recursos en Secrets Manager, siga estos pasos:
-
Cree un secreto y, a continuación, anote el ARN del secreto.
-
Copie y pegue esta política en un editor de texto y, a continuación, guárdela como un archivo JSON, por ejemplo, my_explicit_deny_policy.json:
{ "Version": "2012-10-17","Statement": [
{
"Effect": "Deny",
"Action": "secretsmanager:GetSecretValue",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
-
Ejecute el comando put-resource-policy de la CLI de AWS para adjuntar una política de recursos para el secreto a fin de denegar explícitamente la recuperación del valor secreto:
aws secretsmanager put-resource-policy --secret-id My_Resource_Secret --resource-policy file:// My_explicit_deny_Policy.json
Recibirá un resultado similar al siguiente:
{"ARN": "arn:aws:secretsmanager:<your region>:123456789999:secret:My_Resource_Secret",
"Name": "My_Resource_Secret"
}
Nota: El permiso de descifrado de AWS Key Management Service (AWS KMS) solo es necesario utiliza claves de AWS KMS para cifrar su secreto. Cuando el secreto se cifra con una clave de AWS KMS predeterminada, un principal de IAM de una cuenta de terceros no puede recuperar el secreto.
Para obtener más información, consulte Attach a permissions policy to an AWS Secrets Manager secret.