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

Conceitos da funcionalidade Concessões de Acesso do S3

A funcionalidade Concessões de Acesso do S3 apresenta os seguintes conceitos para seu esquema de acesso simplificado:

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

Uma instância da funcionalidade Concessões de Acesso do S3 é um contêiner lógico para concessões individuais que definem quem tem qual nível de acesso a quais dados do Amazon S3. Você pode ter uma instância da funcionalidade Concessões de Acesso do S3 por Região da AWS por Conta da AWS. Use essa instância da funcionalidade Concessões de Acesso do S3 para controlar o acesso a todos os buckets na mesma conta e Região da AWS. Se quiser usar a funcionalidade Concessões de Acesso do S3 para conceder acesso às identidades de usuários e grupos em seu diretório corporativo, você também deverá associar a instância da funcionalidade Concessões de Acesso do S3 a uma instância do Centro de Identidade do AWS Identity and Access Management (IAM).

Locais

Um local define a quais dados a instância da funcionalidade Concessões de Acesso do S3 pode conceder acesso. A funcionalidade Concessões de Acesso do S3 funciona fornecendo credenciais do IAM com acesso limitado a um prefixo, bucket ou objeto específico do S3. Associe um local da funcionalidade Concessões de Acesso do S3 a um perfil do IAM, a partir do qual essas sessões temporárias são criadas. A configuração de local mais comum é um único local em s3:// para toda a instância da funcionalidade Concessões de Acesso do S3, que pode abranger o acesso a todos os buckets do S3 na conta e na Região da AWS. Você também pode criar vários locais em uma instância da funcionalidade Concessões de Acesso do S3. Por exemplo, você pode registrar um bucket como um local s3://DOC-EXAMPLE-BUCKET1 para concessões que deseja limitar a esse bucket e também pode registrar o local padrão s3://.

Concessões

Para restringir o escopo de acesso em um local, crie concessões individuais. Uma concessão individual em uma instância da funcionalidade Concessões de Acesso do S3 permite que uma entidade específica (uma entidade principal do IAM ou um usuário ou grupo em um diretório corporativo) acesse um prefixo, bucket ou objeto do Amazon S3. Para cada concessão, você pode definir um escopo diferente (prefixo, bucket ou objeto) e um nível de acesso (READ, WRITE ou READWRITE). Por exemplo, você pode ter uma concessão que permita acesso READ a s3://DOC-EXAMPLE-BUCKET1/projects/items/* para determinado grupo de diretórios corporativos, 01234567-89ab-cdef-0123-456789abcdef. Essa concessão dá aos usuários desse grupo acesso READ a todos os objetos que tenham um nome de chave com o prefixo projects/items/ no bucket chamado DOC-EXAMPLE-BUCKET1.

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

Uma aplicação pode solicitar credenciais de acesso just-in-time chamando uma nova operação de API do S3, GetDataAccess, para solicitar acesso a um único objeto, prefixo ou bucket com um nível de permissão READ, WRITE ou READWRITE. 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, a funcionalidade Concessões de Acesso do S3 assumirá o perfil do IAM associado ao local da concessão correspondente. Depois, a funcionalidade Concessões de Acesso do S3 definirá o escopo das permissões da sessão do IAM de acordo com o bucket, prefixo ou 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 36 horas.

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.