Solicitar acceso a los datos de Amazon S3 a través de S3 Access Grants
Después de usar Concesiones de acceso Amazon S3 para crear una concesión de acceso que otorgue a las entidades principales de AWS Identity and Access Management (IAM), las identidades de su directorio corporativo o las aplicaciones autorizadas acceso a sus datos de S3, los beneficiarios pueden solicitar credenciales para acceder a estos datos.
Cuando una aplicación o Servicio de AWS utiliza la operación de la API GetDataAccess
para pedir acceso a S3 Access Grants a sus datos de S3 en nombre de un beneficiario, S3 Access Grants 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 solicitante. 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
.
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 |
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.
Para obtener más información, consulte GetDataAccess en la Referencia de la API de Amazon Simple Storage Service.
Puede solicitar credenciales temporales mediante AWS Command Line Interface (AWS CLI), la API de REST de Amazon S3 y los SDK de AWS.
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://
*" }amzn-s3-demo-bucket
/prefixA*
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.