Conceptos de S3 Access Grants
Flujo de trabajo de Concesiones de acceso a Amazon S3
El flujo de trabajo de Concesiones de acceso a Amazon S3 es el siguiente:
Cree una instancia de Concesiones de acceso a Amazon S3. Consulte Trabajo con instancias de concesiones de acceso a S3.
En su instancia de Concesiones de acceso a Amazon S3, registre las ubicaciones en sus datos de Amazon S3 y asigne estas ubicaciones a roles de AWS Identity and Access Management (IAM). Consulte Registrar una ubicación.
Cree concesiones para beneficiarios, que les den acceso a estos a sus recursos de S3. Consulte Trabajo con concesiones en concesiones de acceso a S3.
El beneficiario solicita credenciales temporales de Concesiones de acceso a Amazon S3. Consulte Solicitar acceso a los datos de Amazon S3 a través de S3 Access Grants.
El concesionario accede a los datos de S3 con esas credenciales temporales. Consulte Acceso a los datos de S3 mediante credenciales que suministran las concesiones de acceso a S3.
Para obtener más información, consulte Introducción a S3 Access Grants.
- Instancias de S3 Access Grants
-
Una instancia de Concesiones de acceso a Amazon S3 es un contenedor lógico para concesiones individuales. Al crear una instancia de Concesiones de acceso a Amazon S3, debe especificar una Región de AWS. Cada Región de AWS de su Cuenta de AWS puede tener una instancia de Concesiones de acceso a Amazon S3. Para obtener más información, consulte Trabajo con instancias de concesiones de acceso a S3.
Si quiere usar Concesiones de acceso a Amazon S3 para conceder acceso a identidades de usuarios y grupos de su directorio corporativo, también debe asociar su instancia de Concesiones de acceso a Amazon S3 a una instancia de AWS IAM Identity Center. Para obtener más información, consulte S3 Access Grants e identidades de directorios corporativos.
Una instancia de Concesiones de acceso a Amazon S3 recién creada está vacía. Debe registrar una ubicación en la instancia, que puede ser la ruta predeterminada de S3 (
s3://
), un bucket o un prefijo dentro de un bucket. Después de registrar al menos una ubicación, puede crear concesiones de acceso que concedan acceso a los datos de esta ubicación registrada. - Ubicaciones
-
Una ubicación de Concesiones de acceso a Amazon S3 asigna buckets o prefijos a un rol de AWS Identity and Access Management (IAM). Concesiones de acceso a Amazon S3 asume este rol de IAM para vender credenciales temporales al beneficiario que accede a esa ubicación en particular. En primer lugar, debe registrar al menos una ubicación en su instancia de Concesiones de acceso a Amazon S3 para poder crear una concesión de acceso.
Le recomendamos que registre la ubicación predeterminada (
s3://
) y la asigne a un rol de IAM. La ubicación en la ruta de S3 predeterminada (s3://
) cubre el acceso a todos los buckets de S3 en la Región de AWS de su cuenta. Al crear una concesión de acceso, puede limitar el ámbito de la concesión a un bucket, un prefijo o un objeto dentro de la ubicación predeterminada.Los casos de uso de administración de acceso más complejos pueden requerir que registre una ubicación diferente a la predeterminada. Estos son algunos ejemplos de estos casos de uso:
-
Supongamos que
amzn-s3-demo-bucket
es una ubicación registrada en su instancia de Concesiones de acceso a Amazon S3 con un rol de IAM asignado, pero a este rol de IAM se le niega el acceso a un prefijo concreto del bucket. En este caso, puede registrar el prefijo al que el rol de IAM no tiene acceso como una ubicación independiente y asignar esa ubicación a un rol de IAM diferente con el acceso necesario. -
Supongamos que desea crear concesiones que restrinjan el acceso solo a los usuarios dentro de un punto de conexión a la nube privada virtual (VPC). En este caso, puede registrar una ubicación para un bucket en el que el rol de IAM restrinja el acceso al punto de conexión de VPC. Más adelante, cuando un beneficiario solicite las credenciales a Concesiones de acceso a Amazon S3, este asumirá el rol de IAM de la ubicación para vender las credenciales temporales. Esta credencial denegará el acceso al bucket específico, a menos que el iniciador se encuentre dentro del punto de conexión de VPC. Esta denegación de permiso se aplica además del permiso normal READ, WRITE o READWRITE que se especifica en la concesión.
Si su caso de uso requiere que registre varias ubicaciones en su instancia de Concesiones de acceso a Amazon S3, puede registrar cualquiera de las siguientes opciones:
La ubicación predeterminada de S3 (
s3://
).Un bucket (por ejemplo,
amzn-s3-demo-bucket
) o varios bucketsUn bucket y un prefijo (por ejemplo,
) o varios prefijosamzn-s3-demo-bucket
/prefix*
Para obtener información sobre el número máximo de ubicaciones que puede registrar en su instancia de Concesiones de acceso a Amazon S3, consulte Limitaciones de S3 Access Grants. Para obtener más información sobre el registro de una ubicación de Concesiones de acceso a Amazon S3, consulte Registrar una ubicación.
Tras registrar la primera ubicación en su instancia de Concesiones de acceso a Amazon S3, la instancia seguirá sin tener ninguna concesión de acceso individual. Por lo tanto, aún no se ha concedido acceso a ninguno de sus datos de S3. Ahora puede crear concesiones de acceso para conceder acceso. Para obtener más información acerca de la creación de concesiones, consulte Trabajo con concesiones en concesiones de acceso a S3.
-
- Concesiones
-
Una concesión individual en una instancia de Concesiones de acceso a Amazon S3 permite que una identidad específica (una entidad principal de IAM o un usuario o grupo de un directorio corporativo) acceda a una ubicación que esté registrada en su instancia de Concesiones de acceso a Amazon S3.
Al crear una concesión, no es necesario conceder acceso a toda la ubicación registrada. Puede limitar el ámbito de acceso de la concesión en una ubicación. Si la ubicación registrada es la ruta S3 predeterminada (
s3://
), debe limitar el ámbito de la concesión a un bucket, a un prefijo dentro de un bucket o a un objeto específico. Si la ubicación registrada de la concesión es un bucket o un prefijo, puede dar acceso a todo el bucket o prefijo o, si lo prefiere, puede limitar el ámbito de la concesión a un prefijo, subprefijo u objeto.En la concesión, también establece el nivel de acceso de la concesión a READ, WRITE o READWRITE. Supongamos que tiene una concesión que permite al grupo del directorio corporativo
01234567-89ab-cdef-0123-456789abcdef
acceso READ al buckets3://
. Los usuarios de este grupo pueden tener acceso READ a todos los objetos que tengan un nombre de clave de objeto que comience con el prefijoamzn-s3-demo-bucket
/projects/items/*projects/items/
en el bucket denominadoamzn-s3-demo-bucket
.Para obtener información sobre el número máximo de concesiones que puede crear en su instancia de Concesiones de acceso a Amazon S3, consulte Limitaciones de S3 Access Grants. Para obtener más información acerca de la creación de concesiones, consulte Crear concesiones.
- Credenciales temporales de S3 Access Grants
-
Tras crear una concesión, una aplicación autorizada que utilice la identidad especificada en la concesión podrá solicitar credenciales de acceso justo a tiempo. Para ello, la aplicación llama a la operación de API de S3 GetDataAccess. Los beneficiarios pueden usar esta operación de API para solicitar acceso a los datos de S3 que ha compartido con ellos.
La instancia de S3 Access Grants evalúa la solución
GetDataAccess
con respecto a las concesiones de las que dispone. Si existe una concesión correspondiente para el solicitante, Concesiones de acceso a Amazon S3 asume el rol de IAM asociado a la ubicación registrada de la concesión correspondiente. Concesiones de acceso a Amazon S3 concede los permisos de las credenciales temporales para acceder únicamente al bucket, prefijo u objeto de S3 especificado en el ámbito de la concesión.El tiempo de vencimiento de las credenciales de acceso temporal es de 1 hora de forma predeterminada, pero puede establecerlo en cualquier valor, desde 15 minutos a 12 horas. Consulte la duración máxima de la sesión en la referencia de la API AssumeRole.
Funcionamiento
En el siguiente diagrama, una ubicación predeterminada de Amazon S3 con el alcance s3://
está registrada con el rol de IAM s3ag-location-role
. Este rol de IAM tiene permisos para realizar acciones de Amazon S3 dentro de la cuenta cuando sus credenciales se obtienen a través de S3 Access Grants.
En esta ubicación, se crean dos concesiones de acceso individuales para dos usuarios de IAM. Al usuario de IAM, Bob, se le concede acceso de READ
y WRITE
con el prefijo bob/
del bucket DOC-BUCKET-EXAMPLE
. A otro rol de IAM, Alice, solo se le concede acceso de READ
con el prefijo alice/
del bucket DOC-BUCKET-EXAMPLE
. Se define una concesión, coloreada en azul, para que Bob acceda al prefijo bob/
del bucket DOC-BUCKET-EXAMPLE
. Se define una concesión, coloreada en verde, para que Alice acceda al prefijo del alice/
del bucket DOC-BUCKET-EXAMPLE
.
Cuando Bob READ
los datos, el rol de IAM asociado a la ubicación en la que se encuentra su concesión llama a la operación de la API GetDataAccess de S3 Access Grants. Si Bob intenta READ
cualquier prefijo u objeto de S3 que comience por s3://DOC-BUCKET-EXAMPLE/bob/*
, la solicitud GetDataAccess
devuelve un conjunto de credenciales de sesión de IAM temporales con permiso para s3://DOC-BUCKET-EXAMPLE/bob/*
. Del mismo modo, Bob puede WRITE
en cualquier prefijo u objeto de S3 que comience por s3://DOC-BUCKET-EXAMPLE/bob/*
, ya que la concesión también lo permite.
Del mismo modo, Alice puede READ
cualquier cosa que comience con s3://DOC-BUCKET-EXAMPLE/alice/
. Sin embargo, si intenta WRITE
cualquier cosa con cualquier bucket, prefijo u objeto en s3://
, recibirá un mensaje de error de acceso denegado (403 Prohibido), ya que no hay ninguna concesión que le brinde acceso de WRITE
a ningún dato. Además, si Alice solicita algún nivel de acceso (READ
o WRITE
) a datos fuera de s3://DOC-BUCKET-EXAMPLE/alice/
, volverá a recibir un error de acceso denegado.
Este patrón se adapta a un gran número de usuarios y buckets, y simplifica la administración de esos permisos. En lugar de editar políticas de bucket de S3 potencialmente voluminosas cada vez que quiera añadir o eliminar una relación de acceso a un prefijo de usuario individual, puede añadir y eliminar concesiones individuales y discretas.