Políticas basadas en recursos - AWS Secrets Manager

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Políticas basadas en recursos

En una política basada en recursos, usted especifica quién puede obtener acceso al secreto y las acciones que puede realizar en él. Puede utilizar políticas basadas en recursos para:

  • Conceder acceso a un solo secreto a varios usuarios o roles.

  • Conceder acceso a usuarios o roles en otras cuentas de AWS.

Al adjuntar una política basada en recursos a un secreto en la consola, Secrets Manager utiliza el motor de razonamiento automatizado Zelkova y la API ValidateResourcePolicy para evitar que pueda conceder a una amplia gama de principales de IAM acceso a sus secretos. También puede llamar a la API de PutResourcePolicy con el parámetro BlockPublicPolicy desde la CLI o el SDK.

importante

La validación de la política de recursos y el parámetro BlockPublicPolicy ayudan a proteger sus recursos al impedir que se conceda acceso público a través de las políticas de recursos que se adjuntan directamente a sus secretos. Además de usar estas características, analice detenidamente las siguientes políticas para confirmar que no otorgan acceso público:

  • Políticas basadas en identidad asociadas a las entidades principales de AWS vinculadas (por ejemplo, los roles de IAM)

  • Políticas basadas en recursos adjuntas a recursos de AWS asociados (por ejemplo, claves de AWS Key Management Service [AWS KMS])

Para revisar los permisos de sus secretos, consulte Determinación de quién tiene permisos para los secretos de .

Ver, cambiar o eliminar la política de recursos de un secreto (consola)
  1. Abra la consola de Secrets Manager en https://console.aws.amazon.com/secretsmanager/.

  2. En la lista de secretos, elija el secreto.

  3. En la página de detalles secretos, en la pestaña Descripción general, en la sección Permisos de recursos, seleccione Editar permisos.

  4. En el campo de código, realice una de las siguientes operaciones y, a continuación, elija Save (Guardar):

    • Para adjuntar o modificar una política de recursos, ingrese la política.

    • Para eliminar la política, limpie el campo de código.

AWS CLI

ejemplo Recuperar una política de recursos

En el siguiente ejemplo de get-resource-policy se recupera la política basada en recursos asociada a un secreto.

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret
ejemplo Eliminar una política de recursos

En el siguiente ejemplo de delete-resource-policy se elimina la política basada en recursos asociada a un secreto.

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret
ejemplo Agregar una política de recursos

En el siguiente ejemplo de put-resource-policy se agrega una política de permisos a un secreto, pero primero se comprueba que la política no proporciona un acceso amplio al secreto. La política se lee desde un archivo. Para obtener más información, consulte Carga de parámetros de la AWS CLI desde un archivo en la Guía del usuario de la AWS CLI.

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

Contenidos de mypolicy.json:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

AWS SDK

Para recuperar la política adjunta a un secreto, utilice GetResourcePolicy.

Para eliminar una política asociada a un secreto, utilice DeleteResourcePolicy.

Para adjuntar una política a un secreto, utilice PutResourcePolicy. Si ya hay una política adjunta, el comando la reemplaza por la nueva política. La política deben tener un formato como texto estructurado JSON. Consulte Estructura del documento de política JSON.

Para obtener más información, consulte AWS SDKs.

Ejemplos

Ejemplo: permiso para recuperar valores secretos

Para conceder permiso para recuperar valores secretos, puede adjuntar políticas a secretos o identidades. Para obtener ayuda para determinar el tipo de política que se va a utilizar, consulte Políticas basadas en identidad y políticas basadas en recursos. Para obtener información sobre cómo adjuntar una política a una identidad, consulte Políticas basadas en recursos y Políticas basadas en identidad.

Este ejemplo es útil cuando desea conceder acceso a un secreto único a varios usuarios o roles. Para conceder permiso para recuperar un grupo de secretos en una llamada a la API por lotes, consulte Ejemplo: permiso para recuperar un grupo de valores secretos en un lote.

ejemplo Leer un secreto

Puede conceder acceso a un secreto adjuntando la siguiente política al secreto.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/EC2RoleToAccessSecrets" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

Ejemplo: permisos y VPC

Si necesita acceder a Secrets Manager desde una VPC, puede asegurarse de que las solicitudes a Secrets Manager provengan de la VPC mediante la inclusión de una condición en las políticas de permisos. Para obtener más información, consulte Limitar solicitudes con condiciones del punto de conexión de VPC y Uso de un punto de conexión de VPC de AWS Secrets Manager.

Asegúrese de que las solicitudes para acceder al secreto desde otros servicios de AWStambién provienen de la VPC, de lo contrario esta política les denegará el acceso.

ejemplo Requerir que las solicitudes lleguen a través de un punto de conexión de VPC

La siguiente política permite a un usuario realizar operaciones de Secrets Manager solo cuando la solicitud llega a través del punto de enlace de la VPC vpce-1234a5678b9012c.

{ "Id": "example-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictGetSecretValueoperation", "Effect": "Deny", "Principal": "*", "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1234a5678b9012c" } } } ] }
ejemplo Requerir que las solicitudes provengan de una VPC

La siguiente política permite utilizar comandos para crear y administrar secretos sólo cuando proceden de vpc-12345678. Además, la política permite operaciones que utilizan el acceso al valor cifrado del secreto solo cuando las solicitudes proceden de vpc-2b2b2b2b. Podría utilizar una política como esta en caso de que ejecute una aplicación en una VPC, pero utiliza una segunda VPC aislada para funciones de administración.

{ "Id": "example-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdministrativeActionsfromONLYvpc-12345678", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:Create*", "secretsmanager:Put*", "secretsmanager:Update*", "secretsmanager:Delete*", "secretsmanager:Restore*", "secretsmanager:RotateSecret", "secretsmanager:CancelRotate*", "secretsmanager:TagResource", "secretsmanager:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "AllowSecretValueAccessfromONLYvpc-2b2b2b2b", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } } ] }

Ejemplo: Entidad principal de servicio

Si la política de recursos adjunta al secreto incluye una entidad principal de servicio de AWS, se recomienda utilizar las claves de condición globales aws:SourceArn y aws:SourceAccount. Los valores del ARN y de la cuenta se incluyen en el contexto de la autorización solo cuando Secrets Manager recibe una solicitud procedente de otro servicio de AWS. Esta combinación de condiciones evita un potencial escenario de suplente confuso.

Si un ARN de recurso incluye caracteres que no están permitidos en una política de recursos, no puede utilizar ese ARN de recurso en el valor de la aws:SourceArn clave de condición. En cambio, utilice la clave de condición aws:SourceAccount. Para obtener más información, consulte los requisitos IAM.

Las entidades principales de servicio no se utilizan normalmente como entidades principales en una política adjunta a un secreto, pero algunos servicios de AWS lo requieren. Para obtener información sobre las políticas de recursos que un servicio requiere que se adjunten a un secreto, consulte la documentación del servicio.

ejemplo Permitir que un servicio acceda a un secreto mediante una entidad principal de servicio
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "service-name.amazonaws.com" ] }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ArnLike": { "aws:sourceArn": "arn:aws:service-name::123456789012:*" }, "StringEquals": { "aws:sourceAccount": "123456789012" } } } ] }