Muestra de las concesiones de acceso del intermediario - Amazon Simple Storage Service

Muestra de las concesiones de acceso del intermediario

Los propietarios de los datos de S3 pueden usar las concesiones de acceso a S3 para crear concesiones de acceso para las identidades de AWS Identity and Access Management (IAM) o para las identidades de los directorios corporativos de AWS IAM Identity Center. Las identidades de IAM y las identidades del directorio del IAM Identity Center pueden a su vez usar la API de ListCallerAccessGrants para mostrar todos los buckets, prefijos y objetos de Amazon S3 a los que pueden acceder, según lo definido por las concesiones de acceso a S3. Utilice esta API para detectar todos los datos de S3 a los que puede acceder una identidad de directorio o IAM mediante concesiones de acceso a S3.

Puede utilizar esta característica para crear aplicaciones que muestren los datos a los que pueden acceder usuarios finales específicos. Por ejemplo, el navegador de almacenamiento de AWS para S3, un componente de interfaz de usuario de código abierto que los clientes utilizan para acceder a los buckets de S3, utiliza esta característica para presentar a los usuarios finales los datos a los que tienen acceso en Amazon S3, en función de las concesiones de acceso a S3. Otro ejemplo es que, al crear una aplicación para navegar, cargar o descargar datos en Amazon S3, puede utilizar esta característica para crear una estructura de árbol en la aplicación que luego pueda explorar un usuario final.

El beneficiario, ya sea una identidad de IAM o una identidad de directorio corporativo, puede obtener una lista de las concesiones de acceso 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 user input placeholders con su información.

ejemplo Muestra de unas concesiones de acceso del intermediario

Solicitud:

aws s3control list-caller-access-grants \ --account-id 111122223333 \ --region us-east-2 --max-results 5

Response: (Respuesta:)

{ "NextToken": "6J9S...", "CallerAccessGrantsList": [ { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix1/*", "ApplicationArn": "NA" }, { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix2/*", "ApplicationArn": "ALL" }, { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix3/*", "ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d" } ] }
ejemplo Muestra de unas concesiones de acceso del intermediario para un bucket

Puede restringir el alcance de los resultados mediante el parámetro grantscope.

Solicitud:

aws s3control list-caller-access-grants \ --account-id 111122223333 \ --region us-east-2 --grant-scope "s3://amzn-s3-demo-bucket"" --max-results 1000

Response: (Respuesta:)

{ "NextToken": "6J9S...", "CallerAccessGrantsList": [ { "Permission": "READ", "GrantScope": "s3://amzn-s3-demo-bucket*", "ApplicationArn": "ALL" }, { "Permission": "READ", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/*", "ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d" } ] }

Para obtener información sobre la compatibilidad de la API de REST de Amazon S3 para obtener una lista de las concesiones de acceso de intermediario de la API, consulte ListCallerAccessGrants 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.

Java

En el siguiente ejemplo de código, se devuelven las concesiones de acceso del intermediario de la API a los datos de S3 de una Cuenta de AWS particular. Para utilizar este ejemplo de código, reemplace user input placeholders con su propia información.

ejemplo Muestra de unas concesiones de acceso del intermediario

Solicitud:

Public void ListCallerAccessGrants() { ListCallerAccessGrantsRequest listRequest = ListCallerAccessGrantsRequest.builder() .withMaxResults(1000) .withGrantScope("s3://") .accountId("111122223333"); ListCallerAccessGrantsResponse listResponse = s3control.listCallerAccessGrants(listRequest); LOGGER.info("ListCallerAccessGrantsResponse: " + listResponse); }

Response: (Respuesta:)

ListCallerAccessGrantsResponse( CallerAccessGrantsList=[ ListCallerAccessGrantsEntry( S3Prefix=s3://amzn-s3-demo-bucket/prefix1/, Permission=READ, ApplicationArn=ALL ) ])