Conceitos da funcionalidade Concessões de Acesso do S3 - Amazon Simple Storage Service

Conceitos da funcionalidade Concessões de Acesso do S3

Fluxo de trabalho do recurso Concessão de Acesso do S3

O fluxo de trabalho do recurso Concessão de Acesso do S3 é:

  1. Crie uma instância da funcionalidade Concessões de Acesso do S3. Consulte Criar uma instância da funcionalidade Concessões de Acesso do S3.

  2. Na instância do recurso Concessão de Acesso do S3, registre locais nos dados do Amazon S3 e associe esses locais a perfis do AWS Identity and Access Management (IAM). Consulte Registrar um local.

  3. Crie concessões para os beneficiários, o que concede aos beneficiários acesso aos seus recursos do S3. Consulte Criar concessões.

  4. O beneficiário solicita credenciais temporárias ao recurso Concessão de Acesso do S3. Consulte Solicitar acesso aos dados do Amazon S3 por meio da funcionalidade Concessões de Acesso do S3.

  5. O beneficiário acessa os dados do S3 usando essas credenciais temporárias. Consulte Acessar dados do S3 por meio de uma concessão de acesso.

Para obter mais informações, consulte Conceitos básicos da funcionalidade Concessões de Acesso do S3.

Instâncias da funcionalidade Concessões de Acesso do S3

Instância do recurso Concessão de Acesso do S3 é um contêiner lógico para concessões individuais. Ao criar uma instância do recurso Concessão de Acesso do S3, é necessário especificar um Região da AWS. Cada Região da AWS na sua Conta da AWS pode ter uma instância do recurso Concessão de Acesso do S3. Para obter mais informações, consulte Criar uma instância da funcionalidade Concessões de Acesso do S3.

Se quiser usar o recurso Concessão de Acesso do S3 para conceder acesso às identidades de usuários e grupos no diretório corporativo, você também deverá associar a instância do recurso Concessão de Acesso do S3 a uma instância do AWS IAM Identity Center. Para obter mais informações, consulte Concessões de Acesso do S3 e identidades de diretórios corporativos.

Uma instância recém-criada do recurso Concessão de Acesso do S3 está vazia. É necessário registrar um local na instância, que pode ser o caminho padrão do S3 (s3://), um bucket ou um prefixo dentro de um bucket. Depois de registrar pelo menos uma localização, é possível criar concessões que dão acesso aos dados nessa localização registrada.

Locais

Uma localização do recurso Concessão de Acesso do S3 associa buckets ou prefixos a um perfil do AWS Identity and Access Management (IAM). O recurso Concessão de Acesso do S3 assume esse perfil do IAM para fornecer credenciais temporárias ao beneficiário que está acessando aquela localização específica. Primeiro, é necessário registrar pelo menos uma localização na instância do recurso Concessão de Acesso do S3 para poder criar uma concessão de acesso.

Recomendamos registrar a localização padrão (s3://) e associá-la a um perfil do IAM. A localização no caminho padrão do S3 (s3://) abrange o acesso a todos os seus buckets do S3 na Região da AWS da sua conta. Ao criar uma concessão de acesso, é possível restringir o escopo da concessão a um bucket, um prefixo ou um objeto dentro da localização padrão.

Casos de uso de gerenciamento de acesso mais complexos podem exigir que você registre mais do que a localização padrão. Alguns exemplos desses casos de uso são:

  • Suponha que amzn-s3-demo-bucket seja uma localização registrada em sua instância do recurso Concessão de Acesso do S3 com um perfil do IAM associado a ela, mas esse perfil do IAM tenha acesso negado a um prefixo específico no bucket. Nesse caso, é possível registrar o prefixo ao qual o perfil do IAM não tem acesso como uma localização separada e associar essa localização a um perfil do IAM diferente com o acesso necessário.

  • Suponha que você queira criar concessões que restrinjam o acesso apenas aos usuários em um endpoint de nuvem privada virtual (VPC). Nesse caso, é possível registrar uma localização para um bucket no qual o perfil do IAM restringe o acesso ao endpoint da VPC. Posteriormente, quando um beneficiário solicita credenciais ao recurso Concessão de Acesso do S3, ele assume o perfil do IAM da localização para distribuir credenciais temporárias. Essa credencial negará acesso ao bucket específico, a menos que o chamador esteja dentro do endpoint da VPC. Essa permissão de negação é aplicada além da permissão READ, WRITE ou READWRITE normal especificada na concessão.

Se seu caso de uso exigir que você registre várias localizações em sua instância do recurso Concessão de Acesso do S3, você poderá registrar qualquer um dos seguintes:

  • A localização padrão do S3 (s3://)

  • Um bucket (por exemplo, amzn-s3-demo-bucket) ou vários buckets.

  • Um bucket e um prefixo (por exemplo, amzn-s3-demo-bucket/prefix*) ou vários prefixos.

Para ter o número máximo de localizações que você pode registrar na instância do recurso Concessão de Acesso do S3, consulte Limitações da funcionalidade Concessões de Acesso do S3. Para ter mais informações sobre o registro de uma localização do recurso Concessão de Acesso do S3, consulte Registrar um local.

Depois de registrar a primeira localização na sua instância do recurso Concessão de Acesso do S3, ela ainda não terá nenhuma concessão de acesso individual. Portanto, nenhum acesso foi concedido ainda a nenhum dos seus dados do S3. Agora é possível criar concessões de acesso para conceder acesso. Para ter mais informações sobre a criação de concessões, consulte Criar concessões.

Concessões

Uma concessão individual em uma instância do recurso Concessão de Acesso do S3 permite que uma identidade específica, ou seja, uma entidade principal do IAM ou um usuário ou grupo em um diretório corporativo, acesse uma localização registrada na instância do recurso Concessão de Acesso do S3.

Ao criar uma concessão, não é necessário conceder acesso a toda a localização registrada. É possível restringir o escopo de acesso da concessão em uma localização. Se a localização registrada for o caminho padrão do S3 (s3://), você deverá restringir o escopo da concessão a um bucket, um prefixo dentro de um bucket ou um objeto específico. Se a localização registrada da concessão for um bucket ou um prefixo, você poderá conceder acesso a todo o bucket ou ao prefixo ou, opcionalmente, restringir o escopo da concessão a um prefixo, um subprefixo ou um objeto.

Na concessão, também é possível definir o nível de acesso da concessão como READ, WRITE ou READWRITE. Suponha que você tenha uma concessão que dê ao grupo de diretórios corporativos acesso READ 01234567-89ab-cdef-0123-456789abcdef ao bucket s3://amzn-s3-demo-bucket/projects/items/*. Os usuários desse grupo podem ter acesso READ a cada objeto que tenha um nome de chave de objeto que comece com o prefixo projects/items/ no bucket denominado amzn-s3-demo-bucket.

Para ter o número máximo de concessões que você pode criar na instância do recurso Concessão de Acesso do S3, consulte Limitações da funcionalidade Concessões de Acesso do S3. Para ter mais informações sobre a criação de concessões, consulte Criar concessões.

Credenciais temporárias da funcionalidade Concessões de Acesso do S3

Depois de criar uma concessão, uma aplicação autorizada que utilize a identidade especificada na concessão pode solicitar credenciais de acesso just-in-time. Para fazer isso, a aplicação chama a operação da API GetDataAccess do S3. Os beneficiários podem usar essa operação da API para solicitar acesso aos dados do S3 que você compartilhou com eles.

A instância da funcionalidade Concessões de Acesso do S3 avalia a solicitação GetDataAccess em relação às concessões que ela tem. Se houver uma concessão correspondente, o recurso Concessão de Acesso do S3 assumirá o perfil do IAM associado à localização da concessão correspondente. O recurso Concessão de Acesso do S3 define o escopo das credenciais temporárias para acessar apenas o bucket, o perfil ou o objeto do S3 especificado pelo escopo da concessão.

O tempo de expiração das credenciais temporárias de acesso é padronizado em 1 hora, mas você pode configurá-lo para qualquer valor entre 15 minutos a 12 horas. Veja a duração máxima da sessão na referência da API AssumeRole.

Como funciona

No diagrama a seguir, um local padrão do Amazon S3 com o escopo s3:// é registrado com o perfil do IAM s3ag-location-role. Esse perfil do IAM tem permissões para realizar ações do Amazon S3 dentro da conta quando suas credenciais são obtidas por meio da funcionalidade Concessões de Acesso do S3.

Nesse local, duas concessões de acesso individuais são criadas para dois usuários do IAM. O usuário do IAM Bob recebe acesso READ e WRITE ao prefixo bob/ no bucket DOC-BUCKET-EXAMPLE. Outro perfil do IAM, Alice, só recebe acesso READ ao prefixo alice/ no bucket DOC-BUCKET-EXAMPLE. Uma concessão, mostrada em azul, é definida para que Bob acesse o prefixo bob/ no bucket DOC-BUCKET-EXAMPLE. Uma concessão, mostrada em verde, é definida para que Alice acesse o prefixo alice/ no bucket DOC-BUCKET-EXAMPLE.

Quando chega a hora de Bob coletar dados de READ, o perfil do IAM associado ao local em que sua concessão está chama a operação de API GetDataAccess da funcionalidade Concessões de Acesso do S3. Se Bob tentar usar READ em qualquer prefixo ou objeto do S3 que comece com s3://DOC-BUCKET-EXAMPLE/bob/*, a solicitação GetDataAccess retornará um conjunto de credenciais de sessão temporária do IAM com permissão para s3://DOC-BUCKET-EXAMPLE/bob/*. Da mesma forma, Bob pode usar WRITE em qualquer prefixo ou objeto do S3 que comece com s3://DOC-BUCKET-EXAMPLE/bob/*, porque a concessão também permite isso.

Da mesma forma, Alice pode usar READ em qualquer coisa que comece com s3://DOC-BUCKET-EXAMPLE/alice/. No entanto, se ela tentar usar WRITE em qualquer bucket, prefixo ou objeto em s3://, receberá um erro de Acesso negado (403 Forbidden), pois não há nenhuma concessão que lhe dê acesso WRITE a nenhum dado. Além disso, se Alice solicitar qualquer nível de acesso (READ ou WRITE) a dados fora de s3://DOC-BUCKET-EXAMPLE/alice/, ela receberá novamente um erro de Acesso negado.

Como funciona a funcionalidade Concessões de Acesso do S3

Esse padrão se expande para um grande número de usuários e buckets e simplifica o gerenciamento dessas permissões. Em vez de editar políticas potencialmente grandes de bucket do S3 toda vez que quiser adicionar ou remover uma relação individual de acesso entre prefixo e usuário, você pode adicionar e remover concessões individuais e discretas.