AWS CloudTrailExemplos de políticas baseadas em recursos do - AWS CloudTrail

AWS CloudTrailExemplos de políticas baseadas em recursos do

Esta seção fornece exemplos de políticas baseadas em recursos para os painéis, repositórios de dados de eventos e canais do CloudTrail Lake.

O CloudTrail é compatível com os seguintes tipos de políticas baseadas em recursos:

  • As políticas baseadas em recursos em canais usados para integrações do CloudTrail Lake com origens de eventos fora da AWS. A política baseada em recursos do canal define quais entidades principais (contas, usuários, funções e usuários federados) podem chamar PutAuditEvents no canal para entregar eventos para o armazenamento de dados do evento de destino. Para obter mais informações sobre a criação de integrações com o CloudTrail Lake, consulte Crie uma integração com uma fonte de eventos fora da AWS.

  • Políticas baseadas em recursos para controlar quais entidades principais podem realizar ações no datastore de eventos. Você pode usar políticas baseadas em recursos para fornecer acesso entre contas aos datastores de eventos.

  • Políticas baseadas em recursos em painéis para permitir que o CloudTrail atualize um painel do CloudTrail Lake no intervalo que você estabelecer ao definir uma agenda de atualização para um painel. Para obter mais informações, consulte Definir uma agenda de atualização para um painel personalizado com o console do CloudTrail.

Exemplos de políticas baseadas em recursos para canais

A política baseada em recursos do canal define quais entidades principais (contas, usuários, funções e usuários federados) podem chamar PutAuditEvents no canal para entregar eventos para o armazenamento de dados do evento de destino.

As informações necessárias para a política são determinadas pelo tipo de integração.

  • Para uma integração direta, o CloudTrail exige que a política contenha os IDs da Conta da AWS do parceiro e exige que o ID externo exclusivo fornecido pelo parceiro seja inserido. O CloudTrail adicionará automaticamente os IDs da Conta da AWS do parceiro à política de recursos quando uma integração usando o console do CloudTrail for criada. Consulte a documentação do parceiro para saber como obter os números da Conta da AWS necessários para a política.

  • Para uma integração de solução, é necessário especificar pelo menos um ID de Conta da AWS como entidade principal e, opcionalmente, um ID externo pode ser inserido para evitar o “confused deputy”.

A seguir estão os requisitos para a política baseada em recursos:

  • Cada uma deve incluir pelo menos uma instrução. A política pode ter um máximo de 20 instruções.

  • Cada instrução contém pelo menos uma entidade principal. Uma entidade principal pode ser uma conta, um usuário, um perfil ou um usuário federado. Uma instrução pode ter um máximo de 50 entidades principais.

  • O ARN do recurso definido na política deve corresponder ao ARN do canal ao qual a política está anexada.

  • A política contém apenas uma ação: cloudtrail-data:PutAuditEvents

O proprietário do canal pode chamar a API PutAuditEvents no canal, a menos que a política negue ao proprietário o acesso ao recurso.

Exemplo: fornecer acesso ao canal às entidades principais

O exemplo a seguir concede permissões às entidades principais com os ARNs arn:aws:iam::111122223333:root, arn:aws:iam::444455556666:root e arn:aws:iam::123456789012:root para chamar a API PutAuditEvents no canal do CloudTrail com o ARN arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b" } ] }

Exemplo: uso de um ID externo para evitar o “confused deputy”

O exemplo a seguir usa um ID externo para endereçar e evitar um confused deputy. “Confused deputy” é um problema de segurança no qual uma entidade sem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la.

O parceiro de integração cria o ID externo para usar na política. Em seguida, ele fornece o ID externo a você como parte da criação da integração. O valor pode ser qualquer string exclusiva, como uma frase secreta ou o número de uma conta.

O exemplo concede permissões às entidades principais com os ARNs arn:aws:iam::111122223333:root, arn:aws:iam::444455556666:root e arn:aws:iam::123456789012:root para chamar a API PutAuditEvents no recurso do canal do CloudTrail se a chamada para a API PutAuditEvents incluir o valor do ID externo definido na política.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b" } ] }

Exemplos de políticas baseadas em recursos para armazenamentos e dados de eventos

As políticas baseadas em recursos permitem que você controle quais entidades principais podem realizar ações no datastore de eventos.

Você pode usar políticas baseadas em recursos para fornecer acesso entre contas para permitir que entidades principais selecionadas consultem o datastore de eventos, listem e cancelem consultas e visualizem resultados de consultas.

Para o painel do CloudTrail Lake, as políticas baseadas em recursos são usadas para permitir que o CloudTrail execute consultas nos datastores de eventos para preencher os dados dos widgets do painel quando ele é atualizado. O CloudTrail Lake oferece a opção de anexar uma política baseada em recurso padrão aos datastores de eventos ao criar um painel personalizado ou habilitar o painel Destaques no console do CloudTrail.

As seguintes ações são compatíveis com políticas baseadas em recursos para datastores de eventos:

  • cloudtrail:StartQuery

  • cloudtrail:CancelQuery

  • cloudtrail:ListQueries

  • cloudtrail:DescribeQuery

  • cloudtrail:GetQueryResults

  • cloudtrail:GenerateQuery

  • cloudtrail:GenerateQueryResultsSummary

  • cloudtrail:GetEventDataStore

Ao criar ou atualizar um datastore de eventos ou gerenciar painéis no console do CloudTrail, você tem a opção de adicionar uma política baseada em recurso ao datastore de eventos. Você também pode executar o comando put-resource-policy para anexar uma política baseada em recurso a um datastore de eventos.

Uma política baseada em recurso consiste em uma ou mais instruções. Por exemplo, ela pode incluir uma instrução que permite ao CloudTrail consultar o datastore do evento para obter um painel e outra instrução que permita o acesso entre contas para consultar o datastore do evento. Você pode atualizar uma política baseada em recurso a partir da página de detalhes do datastore de eventos no console do CloudTrail.

Para datastores de eventos da organização, o CloudTrail cria uma política baseada em recurso padrão que lista as ações que as contas de administrador delegado podem realizar nos datastores de eventos da organização. As permissões dessa política são derivadas das permissões de administrador delegado no AWS Organizations. Essa política é atualizada automaticamente após alterações no datastore de eventos da organização ou na organização (por exemplo, uma conta de administrador delegado do CloudTrail é registrada ou removida).

Exemplo: permitir que o CloudTrail execute consultas para atualizar um painel

Para preencher os dados de um painel do CloudTrail Lake durante uma atualização, você precisa permitir que o CloudTrail execute consultas em seu nome. Para fazer isso, anexe uma política baseada em recurso a cada datastore de eventos associado a um widget do painel que inclua uma instrução que permita ao CloudTrail realizar a operação StartQuery para preencher os dados do widget.

Estes são os requisitos para a instrução:

  • A única Principal é cloudtrail.amazonaws.com.

  • A única Action permitida é cloudtrail:StartQuery.

  • A Condition inclui apenas os ARNs dos painéis e o ID da Conta da AWS. Em AWS:SourceArn, você pode fornecer vários ARNs de painéis.

O exemplo de política a seguir inclui uma instrução que permite que o CloudTrail execute consultas em um datastore de eventos para dois painéis personalizados, denominados example-dashboard1 e example-dashboard2, e o painel Destaques denominado AWSCloudTrail-Highlights para a conta 123456789012.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "cloudtrail:StartQuery" ], "Resource": "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/*", "Condition": { "StringLike": { "AWS:SourceArn": [ "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/example-dashboard1", "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/example-dashboard2", "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/AWSCloudTrail-Highlights" ], "AWS:SourceAccount": "123456789012" } } } ] }

Exemplo: permitir que outras contas consultem um datastore de eventos e visualizem resultados de consultas

Você pode usar políticas baseadas em recursos para fornecer acesso entre contas aos datastores de eventos para permitir que outras contas executem consultas nos seus datastores de eventos.

O exemplo de política a seguir inclui uma instrução que permite que usuários-raiz nas contas 111122223333, 777777777777, 999999999999 e 111111111111 executem consultas e obtenham resultados de consultas no datastore de eventos de propriedade do ID de conta 555555555555.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "policy1", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::777777777777:root", "arn:aws:iam::999999999999:root", "arn:aws:iam::111111111111:root" ] }, "Action": [ "cloudtrail:StartQuery", "cloudtrail:GetEventDataStore", "cloudtrail:GetQueryResults" ], "Resource": "arn:aws:cloudtrail:us-east-1:555555555555:eventdatastore/example80-699f-4045-a7d2-730dbf313ccf" } ] }

Exemplo de política baseada em recurso para um painel

Você pode definir um cronograma de atualização para um painel do CloudTrail Lake, o que permite que o CloudTrail atualize o painel em seu nome no intervalo que você estabelecer ao definir uma agenda de atualização para um painel. Para isso, você precisa anexar uma política baseada em recurso ao painel para permitir que o CloudTrail realize a operação StartDashboardRefresh no painel.

A seguir estão os requisitos para a política baseada em recursos:

  • A única Principal é cloudtrail.amazonaws.com.

  • A única Action permitida na política é cloudtrail:StartDashboardRefresh.

  • A Condition inclui apenas o ARN do painel e o ID da Conta da AWS.

O exemplo de política a seguir permite que o CloudTrail atualize um painel denominado exampleDash na conta 123456789012.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "cloudtrail:StartDashboardRefresh" ], "Resource": "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash", "AWS:SourceAccount":"123456789012" } } } ] }