Criar concessões - Amazon Simple Storage Service

Criar concessões

Depois de registrar pelo menos um local na instância da funcionalidade Concessões de Acesso do Amazon S3, você poderá criar uma concessão de acesso. Uma concessão de acesso dá ao beneficiário permissão para acessar um local registrado.

O beneficiário pode ser um usuário ou perfil do AWS Identity and Access Management (IAM) ou um usuário ou grupo de diretório. Um usuário de diretório é um usuário do seu diretório corporativo ou fonte de identidades externa que você adicionou à instância do AWS IAM Identity Center que está associada à instância da funcionalidade Concessões de Acesso do S3. Para criar uma concessão para um usuário ou grupo específico do Centro de Identidade do IAM, encontre o GUID usado para identificar esse usuário no Centro de Identidade do IAM, por exemplo, a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

Você pode conceder acesso a um bucket, prefixo ou objeto. Um prefixo no Amazon S3 é uma string de caracteres no início de um nome de chave de objeto que é usado para organizar os objetos dentro de um bucket. Pode ser qualquer string de caracteres permitidos, por exemplo, nomes de chave de objeto em um bucket que comece com o prefixo engineering/.

Subprefixo

Ao conceder acesso a um local registrado, você pode usar o campo Subprefix para restringir o escopo a um prefixo ou objeto específico em um bucket.

Não é possível criar uma concessão de acesso para o local padrão s3://, o que concederia ao beneficiário acesso a todos os buckets em uma região. Se você escolher o local s3:// padrão como local da concessão, deverá restringir o escopo da concessão usando o campo Subprefix para especificar uma das seguintes opções:

  • Um bucket: s3://bucket/*

  • Um prefixo em um bucket: s3://bucket/prefix*

  • Um prefixo em um prefixo: s3://bucket/prefixA/prefixB*

  • Um objeto: s3://bucket/object-key-name

Se você criar uma concessão de acesso em que o local registrado seja um bucket, poderá enviar uma das seguintes opções no campo Subprefix:

  • Um prefixo no bucket: prefix*

  • Um prefixo em um prefixo: prefixA/prefixB*

  • Um objeto: /object-key-name

O escopo da concessão mostrado no console do Amazon S3 ou o GrantScope que é retornado na resposta da API ou AWS Command Line Interface (AWS CLI) é o resultado da concatenação do caminho do local com o Subprefix. Garanta que esse caminho concatenado seja mapeado corretamente para o bucket, prefixo ou objeto do S3 ao qual você deseja conceder acesso.

Se você estiver criando uma concessão de acesso que dá acesso a apenas um objeto, especifique na chamada de API ou no comando da CLI que s3PrefixType é Object.

nota

Não é possível criar uma concessão para um bucket que ainda não existe. No entanto, é possível criar uma concessão para um prefixo que ainda não existe.

Você pode criar uma concessão de acesso usando o console do Amazon S3, a AWS CLI, a API REST do Amazon S3 ou os AWS SDKs.

Como criar uma concessão de acesso
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação, escolha Access Grants.

  3. Na página Concessões de Acesso do S3, escolha a região que contém a instância da funcionalidade Concessões de Acesso do S3 com a qual você deseja trabalhar.

    Se você estiver usando a instância da funcionalidade Concessões de Acesso do S3 pela primeira vez, conclua a Etapa 2: Registrar um local e navegue até a Etapa 3 do assistente Configurar instância do Access Grants. Se você já tiver uma instância da funcionalidade Concessões de Acesso do S3, escolha Visualizar detalhes, depois selecione Criar concessão na guia Concessões.

    1. Na seção Escopo da concessão, selecione ou insira um local registrado.

      Se você selecionou o local s3:// padrão, use a caixa Subprefixo para restringir o escopo da concessão de acesso. Para obter mais informações, consulte Subprefix. Se você estiver concedendo acesso somente a um objeto, selecione O escopo da concessão é um objeto.

    2. Em Permissões e acesso, selecione o nível de Permissão: Leitura, Gravação ou ambos.

      Depois, escolha o Tipo de beneficiário. Se você adicionou seu diretório corporativo ao Centro de Identidade do IAM e associou essa instância do Centro de Identidade do IAM à instância da funcionalidade Concessões de Acesso do S3, poderá escolher a opção Identidade de diretório do Centro de Identidade do IAM. Se você escolher essa opção, obtenha o ID do usuário ou grupo no Centro de Identidade do IAM e insira-o nesta seção.

      Se o Tipo de beneficiário for um usuário ou perfil do IAM, escolha Entidade principal do IAM. Em Tipo de entidade principal do IAM, escolha Usuário ou Perfil. Depois, em Usuário da entidade principal do IAM, escolha na lista ou insira o ID da identidade.

    3. Para criar a concessão da funcionalidade Concessões de Acesso do S3, escolha Próximo ou Criar concessão.

  4. Se as opções Próximo ou Criar concessão estiverem desabilitadas:

    Não é possível criar concessão
    • Poderá ser necessário registrar um local na instância da funcionalidade Concessões de Acesso do S3 primeiro.

    • Talvez você não tenha a permissão s3:CreateAccessGrant para criar uma concessão de acesso. Entre em contato com o administrador da conta.

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

Os exemplos a seguir mostram como criar uma solicitação de concessão de acesso para uma entidade principal do IAM e como criar uma solicitação de concessão de acesso para um usuário ou grupo de diretório corporativo.

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

nota

Se você estiver criando uma concessão de acesso que dá acesso a apenas um objeto, inclua o parâmetro --s3-prefix-type Object necessário.

exemplo Criar uma solicitação de concessão de acesso para uma entidade principal do IAM
aws s3control create-access-grant \ --account-id 111122223333 \ --access-grants-location-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --access-grants-location-configuration S3SubPrefix=prefixB* \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::123456789012:user/data-consumer-3
exemplo Criar uma resposta de concessão de acesso
{"CreatedAt": "2023-05-31T18:41:34.663000+00:00", "AccessGrantId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "AccessGrantArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:user/data-consumer-3" }, "AccessGrantsLocationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "AccessGrantsLocationConfiguration": { "S3SubPrefix": "prefixB*" }, "GrantScope": "s3://DOC-BUCKET-EXAMPLE/prefix*", "Permission": "READ" }
Criar uma solicitação de concessão de acesso para um usuário ou grupo de diretório

Para criar uma solicitação de concessão de acesso para um usuário ou grupo de diretório, primeiro é necessário obter o GUID do usuário ou grupo de diretório por meio da execução de um dos comandos a seguir.

exemplo Obter o GUID de um usuário ou grupo de diretório

Você pode encontrar o GUID de um usuário do Centro de Identidade do IAM por meio do console do Centro de Identidade do IAM ou usando a AWS CLI ou os AWS SDKs. O comando a seguir lista os usuários na instância especificada do Centro de Identidade do IAM, com os respectivos nomes e identificadores.

aws identitystore list-users --identity-store-id d-1a2b3c4d1234

Esse comando lista os grupos na instância especificada do Centro de Identidade do IAM.

aws identitystore list-groups --identity-store-id d-1a2b3c4d1234
exemplo Criar uma concessão de acesso para um usuário ou grupo de diretório

Esse comando é semelhante à criação de uma concessão para usuários ou perfis do IAM, exceto que o tipo de beneficiário é DIRECTORY_USER ou DIRECTORY_GROUP e o identificador do beneficiário é o GUID do usuário ou grupo de diretório.

aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix="DOC-EXAMPLE-BUCKET/rafael/*" \ --permission READWRITE \ --grantee GranteeType=DIRECTORY_USER,GranteeIdentifier=83d43802-00b1-7054-db02-f1d683aacba5 \

Para obter informações sobre o suporte à API REST do Amazon S3 para gerenciar concessões de acesso, consulte as seguintes seções na Referência da API do Amazon Simple Storage Service:

Esta seção fornece exemplos de como criar uma concessão de acesso usando os AWS SDKs.

Java

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

nota

Se você estiver criando uma concessão de acesso que dá acesso a apenas um objeto, inclua o parâmetro .s3PrefixType(S3PrefixType.Object) necessário.

exemplo Criar uma solicitação de concessão de acesso
public void createAccessGrant() { CreateAccessGrantRequest createRequest = CreateAccessGrantRequest.builder() .accountId("111122223333") .accessGrantsLocationId("a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa") .permission("READ") .accessGrantsLocationConfiguration(AccessGrantsLocationConfiguration.builder().s3SubPrefix("prefixB*").build()) .grantee(Grantee.builder().granteeType("IAM").granteeIdentifier("arn:aws:iam::111122223333:user/data-consumer-3").build()) .build(); CreateAccessGrantResponse createResponse = s3Control.createAccessGrant(createRequest); LOGGER.info("CreateAccessGrantResponse: " + createResponse); }
exemplo Criar uma resposta de concessão de acesso
CreateAccessGrantResponse( CreatedAt=2023-06-07T05:20:26.330Z, AccessGrantId=a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, AccessGrantArn=arn:aws:s3:us-east-2:444455556666:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, Grantee=Grantee( GranteeType=IAM, GranteeIdentifier=arn:aws:iam::111122223333:user/data-consumer-3 ), AccessGrantsLocationId=a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa, AccessGrantsLocationConfiguration=AccessGrantsLocationConfiguration( S3SubPrefix=prefixB* ), GrantScope=s3://DOC-BUCKET-EXAMPLE/prefixB, Permission=READ )