Configuración de las políticas de IAM para utilizar puntos de acceso para buckets de directorio - Amazon Simple Storage Service

Configuración de las políticas de IAM para utilizar puntos de acceso para buckets de directorio

Los puntos de acceso admiten políticas de recursos de AWS Identity and Access Management (IAM) que permiten controlar el uso del punto de acceso por recurso, usuario u otras condiciones. Para que una aplicación o un usuario puedan acceder a objetos a través de un punto de acceso, tanto el punto de acceso como la política de bucket subyacente deben permitir la solicitud.

importante

Agregar un punto de acceso a un bucket de directorio no cambia el comportamiento del bucket cuando se accede a él directamente a través del nombre del bucket. Todas las operaciones existentes respecto al bucket continuarán funcionando como antes. Las restricciones que incluya en una política de punto de acceso o en el ámbito del punto de acceso se aplican solo a las solicitudes realizadas a través de ese punto de acceso.

Cuando utilice políticas de recursos de IAM, asegúrese de resolver advertencias de seguridad, errores, advertencias generales y sugerencias de AWS Identity and Access Management Access Analyzer antes de guardar la política. IAM Access Analyzer ejecuta verificaciones de política para validarla contra la Gramática de la política de IAM y las prácticas recomendadas. Estas verificaciones generan hallazgos y proporcionan recomendaciones para ayudarle a crear políticas funcionales y que se ajustan a las prácticas recomendadas de seguridad.

Para obtener más información sobre la validación de políticas utilizando IAM Access Analyzer, consulte Validación de políticas de IAM Access Analyzer en la Guía del usuario de IAM. Para ver una lista de advertencias, errores y sugerencias que devuelve IAM Access Analyzer, consulte Referencia de verificación de políticas de IAM Access Analyzer.

Ejemplos de política de puntos de acceso para buckets de directorio

Las siguientes políticas de puntos de acceso demuestran cómo controlar las solicitudes realizadas a un bucket de directorio. Las políticas de puntos de acceso requieren ARN de bucket o ARN de punto de acceso. Las políticas no admiten los alias de puntos de acceso. A continuación, se muestra un ejemplo de un ARN de punto de acceso:

arn:aws:s3express:region:account-id:accesspoint/myaccesspoint--zoneID--xa-s3

Puede ver el ARN del punto de acceso en los detalles de un punto de acceso. Para obtener más información, consulte Visualización de los detalles de los puntos de acceso para los buckets de directorio.

nota

Los permisos concedidos en una política de puntos de acceso se aplican solo si el bucket subyacente también permite el mismo acceso. Puede lograr esto de dos maneras:

  1. (Recomendado) Delegue el control de acceso del bucket al punto de acceso como se describe en Delegar el control de acceso a los puntos de acceso.

  2. Agregue los mismos permisos contenidos en la política de puntos de acceso a la política del bucket subyacente.

ejemplo 1. Política de control de servicio para limitar los puntos de acceso a los orígenes de red de VPC

La siguiente política de control de servicio exige que todos los nuevos puntos de acceso se creen con un origen de red de nube privada virtual (VPC). Con esta política en vigor, los usuarios de la organización no podrán crear ningún punto de acceso que sea accesible desde Internet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3express:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } } } ] }
ejemplo 2 - Política de punto de acceso para limitar el acceso al bucket a los puntos de acceso con origen de la red de VPC

La siguiente política de punto de acceso limita todo el acceso al bucket amzn-s3-demo-bucket--zoneID--x-s3 a un punto de acceso con origen de red de VPC.

{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Action": "s3express:CreateSession", "Effect": "Deny", "Resource": "arn:aws:s3express:region:111122223333:bucket/amzn-s3-demo-bucket--zoneID--x-s3", "Condition": { "StringNotEqualsIfExists": { "s3express:AccessPointNetworkOrigin": "VPC" } } } ] }

Claves de condición

Los puntos de acceso para los buckets de directorio tienen claves de condición que puede utilizar en las políticas de IAM para controlar el acceso a los recursos. Las siguientes claves de condición representan solo una parte de una política de IAM. Para ver ejemplos de política completos, consulte Ejemplos de política de puntos de acceso para buckets de directorio, Delegar el control de acceso a los puntos de acceso y Concesión de permisos para puntos de acceso entre cuentas.

s3express:DataAccessPointArn

Este ejemplo muestra cómo filtrar el acceso por el nombre de recurso de Amazon (ARN) de un punto de acceso y coincide con todos los puntos de acceso para Cuenta de AWS 111122223333 en la región región:

"Condition" : { "StringLike": { "s3express:DataAccessPointArn": "arn:aws:s3express:region:111122223333:accesspoint/*" } }
s3express:DataAccessPointAccount

Este ejemplo muestra un operador de cadena que puede utilizar para hallar coincidencias del ID de cuenta del propietario de un punto de acceso. En el siguiente ejemplo, se encuentran todas las concordancias de puntos de acceso que son propiedad de la Cuenta de AWS 111122223333.

"Condition" : { "StringEquals": { "s3express:DataAccessPointAccount": "111122223333" } }
s3express:AccessPointNetworkOrigin

En este ejemplo, se muestra un operador de cadena que puede utilizar para hallar coincidencias del origen de red, ya sea Internet o VPC. En el ejemplo siguiente, solo se hallarán las coincidencias de los puntos de acceso cuyo origen sea VPC.

"Condition" : { "StringEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } }
s3express:Permissions

Puede utilizar s3express:Permissions para restringir el acceso a operaciones de la API específicas en el ámbito del punto de acceso. Se admiten las siguientes operaciones de la API:

  • PutObject

  • GetObject

  • DeleteObject

  • ListBucket (obligatorio para ListObjectsV2)

  • GetObjectAttributes

  • AbortMultipartUpload

  • ListBucketMultipartUploads

  • ListMultipartUploadParts

nota

Cuando utilice claves de condición multivalor, le recomendamos que utilice ForAllValues con las instrucciones Allow y ForAnyValue con las instrucciones Deny. Para obtener más información, consulte Claves de contexto multivalor en la Guía del usuario de IAM.

Para obtener más información sobre el uso de claves de condición con Amazon S3, consulte Actions, resources, and condition keys for Amazon S3 en la Referencia de autorización de servicios.

Para obtener más información sobre los permisos obligatorios para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.

Delegar el control de acceso a los puntos de acceso

Puede delegar el control de acceso desde la política de bucket a la política del punto de acceso. La política de bucket de ejemplo siguiente permite el acceso completo a todos los puntos de acceso de la cuenta del propietario del bucket. Tras aplicar la política, todos los accesos a este bucket estarán controlados por las políticas de punto de acceso. Recomendamos configurar los buckets de esta manera para todos los casos de uso que no requieran acceso directo al bucket.

ejemplo política de bucket que delega el control de acceso a los puntos de acceso
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Condition": { "StringEquals" : { "s3express:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Concesión de permisos para puntos de acceso entre cuentas

Para crear un punto de acceso a un bucket que es propiedad de otra cuenta, primero debe crear el punto de acceso especificando el nombre del bucket y el ID del propietario de la cuenta. A continuación, el propietario del bucket debe actualizar la política del bucket para autorizar las solicitudes desde el punto de acceso. La creación de un punto de acceso es similar a crear un CNAME de DNS, ya que el punto de acceso no proporciona acceso al contenido del bucket. Todo el acceso al bucket está controlado por la política de bucket. La siguiente política de bucket de ejemplo permite solicitudes GET y LIST en el bucket desde un punto de acceso que es propiedad de una Cuenta de AWS de confianza.

Reemplace ARN del bucket por el ARN del bucket.

ejemplo de política de bucket que delega permisos a otra Cuenta de AWS
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "s3express:CreateSession", "Resource" : [ "Bucket ARN" ], "Condition": { "StringEquals" : { "s3express:DataAccessPointAccount": "Access point owner's account ID" }, "ForAllValues:StringEquals": { "s3express:Permissions": [ "GetObject", "ListBucket" ] } } }] }