Listar as concessões de acesso do chamador - Amazon Simple Storage Service

Listar as concessões de acesso do chamador

Os proprietários de dados do S3 podem usar o recurso Concessão de Acesso do S3 para criar concessões de acesso para identidades do AWS Identity and Access Management (IAM) ou identidades de diretórios corporativos do AWS IAM Identity Center. As identidades do IAM e de diretório do Centro de Identidade do IAM podem, por sua vez, usar a API ListCallerAccessGrants para listar todos os buckets, prefixos e objetos do Amazon S3 que elas podem acessar, conforme definido pelo recurso Concessão de Acesso do S3. Use essa API para descobrir todos os dados do S3 que uma identidade do IAM ou de diretório pode acessar por meio do recurso Concessão de Acesso do S3.

É possível usar esse recurso para criar aplicações que mostrem os dados acessíveis a usuários finais específicos. Por exemplo, o AWS Storage Browser para S3, um componente de interface de usuário de código aberto que os clientes usam para acessar buckets do S3, usa esse recurso para apresentar aos usuários finais os dados aos quais eles têm acesso no Amazon S3, com base no recurso Concessão de Acesso do S3. Outro exemplo é que, ao criar uma aplicação para navegar, fazer upload ou baixar dados no Amazon S3, é possível usar esse recurso para criar uma estrutura em árvore na aplicação pela qual um usuário final possa navegar.

O beneficiário, seja uma identidade do IAM ou uma identidade de diretório corporativo, pode obter uma lista de concessões de acesso usando a AWS Command Line Interface (AWS CLI), a API REST do Amazon S3 e os SDKs da AWS.

Para instalar a AWS CLI, consulte Instalar a AWS CLI no Guia do usuário da AWS Command Line Interface.

Para usar o comando a seguir, substitua os user input placeholders por suas próprias informações.

exemplo Listar as concessões de acesso de um chamador

Solicitação:

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

Resposta:

{ "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" } ] }
exemplo Listar as concessões de acesso de um chamador para um bucket

É possível limitar o escopo dos resultados usando o parâmetro grantscope.

Solicitação:

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

Resposta:

{ "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 ter informações sobre o suporte à API REST do Amazon S3 e obter uma lista de concessões de acesso do chamador da API, consulte ListCallerAccessGrants na Referência da API do Amazon Simple Storage Service.

Esta seção fornece um exemplo de como os beneficiários solicitam credenciais temporárias da funcionalidade Concessões de Acesso do S3 usando os AWS SDKs.

Java

O exemplo de código a seguir exibe as concessões de acesso do chamador da API aos dados do S3 de uma Conta da AWS específica. Para usar esse exemplo de código, substitua os user input placeholders por suas próprias informações.

exemplo Listar as concessões de acesso de um chamador

Solicitação:

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

Resposta:

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