Controlar o acesso ao Amazon S3 do Athena - Amazon Athena

Controlar o acesso ao Amazon S3 do Athena

Você pode conceder acesso aos locais do Amazon S3 usando políticas baseadas em identidade, políticas de recursos de bucket, políticas de ponto de acesso ou qualquer combinação das opções acima. Quando os atores interagem com o Athena, suas permissões passam pelo Athena para determinar o que o Athena poderá acessar. Isso significa que os usuários devem ter permissões para acessar os buckets do Amazon S3 com a finalidade de consultá-los com o Athena.

Sempre que você usar as políticas do IAM, siga as práticas recomendadas do IAM. Para obter mais informações, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

Observe que as solicitações para o Amazon S3 vêm de um endereço IPv4 privado do Athena, não do IP de origem especificado em aws:SourceIp. Por esse motivo, você não pode usar a condição aws:SourceIp para negar acesso às ações do Amazon S3 em uma determinada política do IAM. Também não é possível restringir ou permitir o acesso aos recursos do Amazon S3 com base nas chaves de condição aws:SourceVpc ou aws:SourceVpce.

nota

Os grupos de trabalho do Athena que usam a autenticação do Centro de Identidade do IAM requerem que as concessões de acesso do S3 sejam configuradas para o uso de identidades de propagação de identidade confiável. Para obter mais informações, consulte S3 Access Grants and directory identities no Guia do usuário do Amazon Simple Storage Service.

Usar políticas baseadas em identidade para controlar o acesso aos buckets do Amazon S3

As políticas baseadas em identidade são anexadas a um usuário, grupo ou função do IAM. Essas políticas permitem que você especifique o que cada identidade pode fazer (suas respectivas permissões). Você pode usar políticas baseadas em identidade para controlar o acesso a buckets do Amazon S3.

A seguinte política baseada em identidade permite o acesso Read e Write a objetos em um bucket específico do Amazon S3. Para usar esta política, substitua o texto do espaço reservado em itálico por seus próprios valores.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] } ] }

Usar as políticas de recursos de bucket para controlar o acesso aos buckets do Amazon S3

Com as políticas de bucket do Amazon S3, você pode proteger o acesso a objetos em seus buckets, para que somente usuários com as permissões apropriadas possam acessá-los. Para obter orientação sobre como criar sua política do Amazon S3, consulte Adicionar uma política de bucket usando o console do Amazon S3 no Guia do usuário do Amazon S3.

A política de permissões de exemplo a seguir limita a capacidade de leitura dos usuários para que leiam objetos que tenham a chave e o valor da tag environment: production. A política de exemplo usa a chave de condição s3:ExistingObjectTag para especificar a chave e o valor da etiqueta.

{ "Version":"2012-10-17", "Statement": [ { "Principal":{"AWS":"arn:aws:iam::111122223333:role/JohnDoe" }, "Effect":"Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals":{"s3:ExistingObjectTag/environment":"production" } ] }

Para obter exemplos de políticas de bucket, consulte Exemplos de políticas de bucket do Amazon S3 no Guia do usuário do Amazon S3.

Usar os pontos de acesso do Amazon S3 para ter um controle mais preciso sobre o acesso aos buckets

Se você tem um conjunto de dados compartilhado em um bucket do Amazon S3, manter uma única política de bucket que gerencia o acesso para centenas de casos de uso pode ser um desafio.

Os pontos de acesso, as políticas e os aliases de bucket do Amazon S3 podem ajudar a resolver esse problema. Um bucket pode ter vários pontos de acesso, cada um com uma política que controla o acesso ao bucket de uma maneira diferente.

Para cada ponto de acesso que você cria, o Amazon S3 gera um alias que representa esse ponto. Como o alias está no formato de nome de bucket do Amazon S3, você pode usar o alias no cláusula LOCATION das instruções CREATE TABLE no Athena. O acesso do Athena ao bucket é controlado pela política do ponto de acesso que o alias representa.

Para obter mais informações, consulte Especificar um local de tabela no Amazon S3 e Usar pontos de acesso no Manual do usuário do Amazon S3.

Usar chaves de contexto CalledVia para só permitir chamadas do Athena para outro serviço

Para maior segurança, é possível usar a chave de contexto de condição global aws:CalledVia. A chave de condição aws:CalledVia contém uma lista dos serviços aos quais você permite chamar outro serviço. Por exemplo, você pode permitir apenas chamadas InvokeFunction para o AWS Lambda que sejam originadas no Athena, especificando o nome da entidade principal do serviço do Athena athena.amazonaws.com para a chave de contexto aws:CalledVia. Para ter mais informações, consulte Usar chaves de contexto CalledVia para o Athena.

Recursos adicionais

Para obter informações detalhadas e exemplos de como conceder acesso ao Amazon S3, consulte os seguintes recursos: