Federar um armazenamento de dados de eventos - AWS CloudTrail

Federar um armazenamento de dados de eventos

A federação de um armazenamento de dados de eventos permite que você visualize os metadados associados ao armazenamento de dados de eventos no Catálogo de Dados do AWS Glue, registre o Catálogo de Dados com o AWS Lake Formation e permita executar consultas SQL em seus dados de eventos usando o Amazon Athena. Os metadados da tabela que estão armazenados no Catálogo de Dados do AWS Glue permitem que o mecanismo de consulta do Athena saiba como encontrar, ler e processar os dados que você deseja consultar.

Você pode ativar a federação usando o console do CloudTrail, AWS CLI ou a operação da API EnableFederation. Quando você habilita a federação de consultas do Lake, o CloudTrail cria um banco de dados gerenciado chamado aws:cloudtrail (se o banco de dados ainda não existir) e uma tabela federada gerenciada no Catálogo de Dados do AWS Glue. O ID do armazenamento de dados de eventos é usado para o nome da tabela. O CloudTrail registra o ARN do perfil de federação e o armazenamento de dados de eventos no AWS Lake Formation, o serviço responsável por permitir o controle de acesso refinado dos recursos federados no Catálogo de Dados do AWS Glue.

Para habilitar a federação de consultas do Lake, você deve criar um perfil do IAM ou escolher um perfil existente. O Lake Formation usa esse perfil para gerenciar permissões para o armazenamento de dados de eventos federados. Quando você cria um novo perfil usando o console do CloudTrail, o CloudTrail cria automaticamente as permissões necessárias para o perfil. Se você escolher um perfil existente, certifique-se de que ele forneça as permissões mínimas.

Você pode desabilitar a federação usando o console do CloudTrail, AWS CLI ou a operação da API DisableFederation. Quando você desabilita a federação, o CloudTrail desabilita a integração com o AWS Glue, o AWS Lake Formation e o Amazon Athena. Depois de desabilitar a federação de consultas do Lake, você não poderá mais consultar seus dados de eventos no Athena. Nenhum dado do CloudTrail Lake é excluído quando você desabilita a federação e você pode continuar executando consultas no CloudTrail Lake.

Não há cobranças do CloudTrail pela federação de armazenamentos de dados de eventos do CloudTrail Lake. Há custos para realizar consultas no Amazon Athena. Para obter informações sobre preços do Athena, consulte os Preços do Amazon Athena.

Considerações

Considere os seguintes fatores ao federar um armazenamento de dados de eventos:

  • Não há cobranças do CloudTrail pela federação de armazenamentos de dados de eventos do CloudTrail Lake. Há custos para realizar consultas no Amazon Athena. Para obter informações sobre preços do Athena, consulte os Preços do Amazon Athena.

  • O Lake Formation é usado para gerenciar permissões para os recursos federados. Se você excluir o perfil da federação ou revogar as permissões para os recursos do Lake Formation ou do AWS Glue, não poderá executar consultas do Athena. Para obter mais informações sobre como trabalhar com o Lake Formation, consulte Gerenciar os recursos da federação do CloudTrail Lake com o AWS Lake Formation.

  • Qualquer pessoa que usa o Amazon Athena para consultar dados registrados no Lake Formation deve ter uma política de permissões do IAM que permita a ação lakeformation:GetDataAccess. A política gerenciada da AWS, AmazonAthenaFullAccess, permite essa ação. Se você usar políticas em linha, atualize as políticas de permissões para permitir essa ação. Para obter mais informações, consulte Gerenciar permissões de usuário do Lake Formation e do Athena.

  • Para criar visualizações em tabelas federadas no Athena, você precisa de um banco de dados de destino diferente de aws:cloudtrail. Isso ocorre porque o banco de dados aws:cloudtrail é gerenciado pelo CloudTrail.

  • Para criar um conjunto de dados no Amazon Quick Suite, você deve escolher a opção Usar SQL personalizado. Para obter mais informações, consulte Creating a dataset using Amazon Athena data.

  • Se a federação estiver habilitada, não será possível excluir um armazenamento de dados de eventos. Para excluir um armazenamento de dados de eventos federados, primeiro você deve desabilitar a federação e a proteção contra encerramento, se estiver habilitada.

  • As seguintes considerações se aplicam aos armazenamentos de dados de eventos da organização:

    • Somente uma única conta de administrador delegado ou a conta de gerenciamento pode habilitar a federação em um armazenamento de dados de eventos da organização. Outras contas de administrador delegado ainda podem consultar e compartilhar informações usando o atributo de compartilhamento de dados do Lake Formation.

    • Qualquer conta de administrador delegado ou conta de gerenciamento da organização pode desabilitar a federação.

Permissões necessárias para federação

Antes de federar um armazenamento de dados de eventos, certifique-se de ter todas as permissões necessárias para o perfil de federação e para habilitar e desabilitar a federação. Se você escolher um perfil do IAM existente para habilitar a federação, somente precisará atualizar as permissões do perfil da federação. Se você preferir criar um novo perfil do IAM usando o console do CloudTrail, o CloudTrail fornecerá todas as permissões necessárias para o perfil.

Permissões do IAM para federar um armazenamento de dados de eventos

Ao habilitar uma federação, você tem a opção de criar um perfil do IAM ou usar um perfil do IAM existente. Quando você escolhe um novo perfil do IAM, o CloudTrail cria um perfil do IAM com as permissões necessárias e nenhuma ação adicional é necessária de sua parte.

Se você escolher um perfil existente, certifique-se de que as políticas de perfil do IAM forneçam as permissões necessárias para habilitar a federação. Esta seção fornece exemplos das políticas de confiança e permissões do perfil do IAM necessárias.

O exemplo a seguir fornece a política de permissões para o perfil de federação. Para a primeira declaração, forneça o ARN completo do seu armazenamento de dados de eventos para o Resource.

A segunda declaração nesta política permite que o Lake Formation decifre dados para um armazenamento de dados de eventos criptografado com uma chave KMS. Substitua key-region, account-id e key-id pelos valores da sua chave KMS. Você poderá omitir essa instrução se o armazenamento de dados de eventos não usar uma chave KMS para criptografia.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "LakeFederationEDSDataAccess", "Effect": "Allow", "Action": "cloudtrail:GetEventDataStoreData", "Resource": "arn:aws:cloudtrail:us-east-1:111111111111:eventdatastore/eds-id" }, { "Sid": "LakeFederationKMSDecryptAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111111111111:key/key-id" } ] }

O exemplo a seguir fornece a política de confiança do IAM que permite ao AWS Lake Formation presumir um perfil do IAM para gerenciar permissões para o armazenamento de dados de eventos federados.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Permissões necessárias para habilitar a federação

O exemplo de política a seguir fornece as permissões obrigatórias mínimas para habilitar a federação em um armazenamento de dados de eventos. Essa política permite que o CloudTrail habilite a federação no armazenamento de dados de eventos, o AWS Glue crie os recursos federados no Catálogo de Dados do AWS Lake Formation e o AWS Glue gerencie o registro de recursos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CloudTrailEnableFederation", "Effect": "Allow", "Action": "cloudtrail:EnableFederation", "Resource": "arn:aws:cloudtrail:us-east-1:111111111111:eventdatastore/eds-id" }, { "Sid": "FederationRoleAccess", "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole" ], "Resource": "arn:aws:iam::111122223333:role/federation-role-name" }, { "Sid": "GlueResourceCreation", "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:CreateTable", "glue:PassConnection" ], "Resource": [ "arn:aws:glue:us-east-1:111111111111:catalog", "arn:aws:glue:us-east-1:111111111111:database/aws:cloudtrail", "arn:aws:glue:us-east-1:111111111111:table/aws:cloudtrail/eds-id", "arn:aws:glue:us-east-1:111111111111:connection/aws:cloudtrail" ] }, { "Sid": "LakeFormationRegistration", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:DeregisterResource" ], "Resource": "arn:aws:lakeformation:region:111111111111:catalog:111111111111" } ] }

Permissões necessárias para desabilitar a federação

O exemplo de política a seguir fornece os recursos mínimos necessários para desabilitar a federação em um armazenamento de dados de eventos. Essa política permite que o CloudTrail desabilite a federação no armazenamento de dados de eventos, o AWS Glue exclua a tabela federada gerenciada no Catálogo de Dados do AWS Glue e o Lake Formation cancele o registro do recurso federado.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CloudTrailDisableFederation", "Effect": "Allow", "Action": "cloudtrail:DisableFederation", "Resource": "arn:aws:cloudtrail:us-east-1:111111111111:eventdatastore/eds-id" }, { "Sid": "GlueTableDeletion", "Effect": "Allow", "Action": "glue:DeleteTable", "Resource": [ "arn:aws:glue:us-east-1:111111111111:catalog", "arn:aws:glue:us-east-1:111111111111:database/aws:cloudtrail", "arn:aws:glue:us-east-1:111111111111:table/aws:cloudtrail/eds-id" ] }, { "Sid": "LakeFormationDeregistration", "Effect": "Allow", "Action": "lakeformation:DeregisterResource", "Resource": "arn:aws:lakeformation:us-east-1:111111111111:catalog:111111111111" } ] }