Solicitar acceso a los datos de Amazon S3 a través de S3 Access Grants
Después de crear una concesión de acceso con Concesiones de acceso a S3, los beneficiarios pueden solicitar credenciales para acceder a los datos de S3 a los que se les ha concedido acceso. Los beneficiarios pueden ser entidades principales de AWS Identity and Access Management (IAM), identidades de su directorio corporativo o aplicaciones autorizadas.
Una aplicación o Servicio de AWS puede utilizar la operación de API de GetDataAccess
para solicitar a Concesiones de acceso a S3 acceso a sus datos de S3 en nombre de un beneficiario. GetDataAccess
comprueba primero que ha concedido acceso a los datos a esta identidad. A continuación, S3 Access Grants utiliza la operación de la API AssumeRole para obtener un token de credencial temporal y se lo ofrece al solicitante. Este token de credencial temporal es un token de AWS Security Token Service token (AWS STS).
La solicitud GetDataAccess
debe incluir el parámetro target
, que especifica el alcance de los datos de S3 a los que se aplican las credenciales temporales. Este alcance target
puede ser el mismo que el alcance de la concesión o un subconjunto del mismo, pero el alcance target
debe estar dentro del alcance de la concesión que se otorgó al beneficiario. La solicitud también debe especificar el parámetro permission
para indicar el nivel de permiso para las credenciales temporales, ya sea READ
, WRITE
o READWRITE
.
Privilegio
El solicitante puede especificar el nivel de privilegio del token temporal en su solicitud de credenciales. Con el parámetro privilege
, el solicitante puede reducir o aumentar el alcance de acceso de las credenciales temporales, dentro de los límites del alcance de la concesión. El valor predeterminado del parámetro privilege
es Default
, lo que significa que el alcance objetivo de la credencial devuelta es el alcance de la concesión original. El otro valor posible para privilege
es Minimal
. Si el alcance target
se reduce con respecto al alcance de la concesión original, se elimina el alcance de la credencial temporal para que coincida con el alcance target
, siempre que el alcance target
esté dentro del alcance de la concesión.
En la siguiente tabla se detalla el efecto del parámetro privilege
en dos concesiones. Una de las concesiones tiene el alcance S3://
, que incluye todo el prefijo amzn-s3-demo-bucket1
/bob/*bob/
del bucket
. La otra concesión tiene el alcance amzn-s3-demo-bucket1
S3://
, que incluye solo el prefijo amzn-s3-demo-bucket1
/bob/reports/*bob/reports/
del bucket
. amzn-s3-demo-bucket1
Alcance de la concesión | Alcance solicitado | Privilegio | Alcance devuelto | Efecto |
---|---|---|---|---|
S3:// |
|
Default
|
|
El solicitante tiene acceso a todos los objetos que tienen nombres clave que comienzan con el prefijo |
S3:// |
|
Minimal
|
|
Sin el carácter comodín * después del nombre del prefijo |
S3:// |
|
Minimal
|
|
El solicitante tiene acceso a todos los objetos que tienen nombres clave que comienzan con el prefijo |
S3:// |
|
Default
|
|
El solicitante tiene acceso a todos los objetos que tienen nombres clave que comienzan con el prefijo |
S3:// |
|
Minimal
|
|
El solicitante solo tiene acceso al objeto con el nombre de clave |
Identidades del directorio
GetDataAccess
considera todas las identidades involucradas en una solicitud al buscar concesiones coincidentes. En el caso de las identidades de directorios corporativos, GetDataAccess
también devuelve las concesiones de la identidad de IAM que se utiliza en la sesión con reconocimiento de identidad. Para obtener más información sobre las sesiones con reconocimiento de identidad, consulte Concesión de permisos para usar sesiones de consola con reconocimiento de identidad en la Guía del usuario de AWS Identity and Access Management. GetDataAccess
genera credenciales que restringen el alcance a la concesión más restrictiva, como se muestra en la siguiente tabla:
Alcance de la concesión para una identidad de IAM | Alcance de la concesión para una identidad de directorio | Alcance solicitado | Alcance devuelto | Privilegio | Efecto |
---|---|---|---|---|---|
S3:// |
|
S3://
|
S3://
|
Default |
El solicitante tiene acceso a todos los objetos cuyos nombres de clave comienzan con el prefijo bob/ como parte de la concesión para el rol de IAM, pero está restringido a los prefijos bob/images/ como parte de la concesión para la identidad de directorio. Tanto el rol de IAM como la identidad de directorio proporcionan acceso al alcance solicitado, que es |
S3:// |
|
S3://
|
S3://
|
Minimal |
Puesto que el Privilegio está establecido en |
S3:// |
|
S3://
|
S3://
|
Default |
El solicitante tiene acceso a todos los objetos cuyos nombres de clave comienzan con el prefijo bob/ como parte de la concesión para la identidad de directorio, pero está restringido a los prefijos bob/images/ como parte de la concesión para el rol de IAM. Tanto el rol de IAM como la identidad de directorio proporcionan acceso al alcance solicitado, que es |
S3:// |
|
S3://
|
S3://
|
Minimal |
Puesto que el Privilegio está establecido en |
Duración
El parámetro durationSeconds
establece la duración de la credencial temporal, en segundos. El valor predeterminado es 3600
segundos (1 hora), pero el solicitante (el beneficiario) puede especificar un intervalo de 900
segundos (15 minutos) a 43200
segundos (12 horas). Si el beneficiario solicita un valor superior al indicado en este máximo, la solicitud producirá un error.
nota
En su solicitud de un token temporal, si la ubicación es un objeto, establece el valor del parámetro targetType
de su solicitud en Object
. Este parámetro solo es necesario si la ubicación es un objeto y el nivel de privilegio es Minimal
. Si la ubicación es un bucket o un prefijo, no es necesario que especifique este parámetro.
Ejemplos
Puede solicitar credenciales temporales mediante la AWS Command Line Interface (AWS CLI), la API de REST de Amazon S3 y los SDK de AWS. Consulte estos ejemplos.
Para obtener información adicional, consulte GetDataAccess en la Referencia de la API de Amazon Simple Storage Service.
Para instalar AWS CLI, consulte Instalación de AWS CLI en la Guía del usuario de AWS Command Line Interface.
Para utilizar el comando de ejemplo siguiente, sustituya
con su información.user input
placeholders
ejemplo Solicitar credenciales temporales
Solicitud:
aws s3control get-data-access \ --account-id
111122223333
\ --targets3://
\amzn-s3-demo-bucket
/prefixA*--permission
READ
\ --privilege Default \ --regionus-east-2
Response: (Respuesta:)
{ "Credentials": { "AccessKeyId": "
Example-key-id
", "SecretAccessKey": "Example-access-key
", "SessionToken": "Example-session-token
", "Expiration": "2023-06-14T18:56:45+00:00
"}, "MatchedGrantTarget": "s3://
*", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::amzn-s3-demo-bucket
/prefixA*111122223333
:role/role-name
" } }
Para obtener información sobre la compatibilidad con la API de REST de Amazon S3 para solicitar credenciales temporales desde S3 Access Grants, consulte GetDataAccess en la Referencia de la API de Amazon Simple Storage Service.
En esta sección se proporciona un ejemplo de cómo los beneficiarios solicitan credenciales temporales a S3 Access Grants mediante los SDK de AWS.