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:
-
(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.
-
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ónregió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
oVPC
. 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 paraListObjectsV2
)GetObjectAttributes
AbortMultipartUpload
ListBucketMultipartUploads
ListMultipartUploadParts
nota
Cuando utilice claves de condición multivalor, le recomendamos que utilice
ForAllValues
con las instruccionesAllow
yForAnyValue
con las instruccionesDeny
. 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" ] } } }] }