

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
<a name="auth-and-access_resource-policies"></a>

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. 
+ Conceda acceso a usuarios o roles en otras AWS cuentas.

Al adjuntar una política basada en recursos a un secreto en la consola, Secrets Manager utiliza el motor de razonamiento automatizado [Zelkova](https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-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 la identidad asociadas a los AWS directores asociados (por ejemplo, las funciones de IAM) 
Políticas basadas en recursos asociadas a los AWS recursos asociados (por ejemplo, claves ()) 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 ](determine-acccess_examine-iam-policies.md).

**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/](https://console.aws.amazon.com/secretsmanager/).

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

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

1. 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
<a name="auth-and-access_resource_cli"></a>

**Example Recuperar una política de recursos**  
En el siguiente ejemplo de [https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-resource-policy.html](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-resource-policy.html) se recupera la política basada en recursos asociada a un secreto.  

```
aws secretsmanager get-resource-policy \
    --secret-id MyTestSecret
```

**Example Eliminar una política de recursos**  
En el siguiente ejemplo de [https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/delete-resource-policy.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/delete-resource-policy.html) se elimina la política basada en recursos asociada a un secreto.  

```
aws secretsmanager delete-resource-policy \
    --secret-id MyTestSecret
```

**Example Agregar una política de recursos**  
En el siguiente ejemplo de [https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/put-resource-policy.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/put-resource-policy.html) 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 AWS CLI parámetros desde un archivo](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html) en la Guía del AWS CLI usuario.  

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

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

## AWS SDK
<a name="auth-and-access_resource_sdk"></a>

Para recuperar la política adjunta a un secreto, utilice [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetResourcePolicy.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetResourcePolicy.html).

Para eliminar una política asociada a un secreto, utilice [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteResourcePolicy.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteResourcePolicy.html).

Para adjuntar una política a un secreto, utilice [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutResourcePolicy.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutResourcePolicy.html). 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies-introduction).

Para obtener más información, consulte [AWS SDKs](asm_access.md#asm-sdks).

## Ejemplos
<a name="auth-and-access_resource-policy-examples"></a>

**Topics**
+ [Ejemplo: permiso para recuperar valores secretos](#auth-and-access_examples_read)
+ [Ejemplo: permisos y VPCs](#auth-and-access_examples_vpc)
+ [Ejemplo: Entidad principal de servicio](#auth-and-access_service)

### Ejemplo: permiso para recuperar valores secretos
<a name="auth-and-access_examples_read"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html). Para obtener información sobre cómo adjuntar una política a una identidad, consulte [Políticas basadas en recursos](#auth-and-access_resource-policies) y [Políticas basadas en identidades](auth-and-access_iam-policies.md).

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](auth-and-access_iam-policies.md#auth-and-access_examples_batch).

**Example 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::111122223333:role/EC2RoleToAccessSecrets"
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "*"
        }
    ]
}
```

### Ejemplo: permisos y VPCs
<a name="auth-and-access_examples_vpc"></a>

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](best-practices.md#iam-contextkeys-vpcendpoint) y [Uso de un punto final AWS Secrets Manager de VPC](vpc-endpoint-overview.md).

Asegúrese de que las solicitudes de acceso al secreto desde otros AWS servicios también provengan de la VPC; de lo contrario, esta política les negará el acceso.

**Example 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-12345678"
    }
  }
}
]
}
```

**Example 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
<a name="auth-and-access_service"></a>

Si la política de recursos adjunta a su secreto incluye un [director de AWS servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), le recomendamos que utilice las claves de condición SourceAccount globales [aws: SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) [y aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). 

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names).

Los directores de servicio no suelen utilizarse como principales en una política asociada a un secreto, pero algunos AWS servicios sí lo exigen. 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.

**Example Permitir que un servicio acceda a un secreto mediante una entidad principal de servicio**    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "s3.amazonaws.com"
    ]
  },
  "Action": "secretsmanager:GetSecretValue",
  "Resource": "*",
  "Condition": {
    "ArnLike": {
      "aws:sourceArn": "arn:aws:s3::123456789012:*"
    },
    "StringEquals": {
      "aws:sourceAccount": "123456789012"
    }
  }

}
]
}
```