Exemplos de políticas baseadas em identidade para o AWS CloudTrail - AWS CloudTrail

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de políticas baseadas em identidade para o AWS CloudTrail

Por padrão, usuários e funções não têm permissão para criar ou modificar recursos do CloudTrail. Eles também não podem executar tarefas usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a API AWS. Para conceder aos usuários permissão para executar ações nos recursos de que precisam, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis, e os usuários podem assumir os perfis.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte Criação de políticas do IAM no Guia do Usuário do IAM.

Para obter detalhes sobre ações e tipos de recursos definidos por CloudTrail, incluindo o formato dos ARNs para cada um dos tipos de recursos, consulte Ações, recursos e chaves de condição AWS CloudTrail na Referência de autorização de serviço.

Práticas recomendadas de políticas

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir CloudTrail recursos em sua conta. Essas ações podem incorrer em custos para a Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com AWS as políticas gerenciadas pela e avance para as permissões de privilégio mínimo: para começar a conceder permissões a seus usuários e workloads, use as AWS políticas gerenciadas pela que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis na sua Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS ou Políticas gerenciadas pela AWS para perfis de trabalho no Guia do usuário do IAM.

  • Aplique permissões de privilégio mínimo: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte Políticas e permissões no IAM no Guia do usuário do IAM.

  • Use condições nas políticas do IAM para restringir ainda mais o acesso: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. É possível também usar condições para conceder acesso a ações de serviço, se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o AWS CloudFormation. Para obter mais informações, consulte Elementos de política JSON do IAM: Condição no Manual do usuário do IAM.

  • Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação de políticas do IAM Access Analyzer no Guia do usuário do IAM.

  • Exigir autenticação multifator (MFA): se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para obter mais informações, consulte Configuração de acesso à API protegido por MFA no Guia do usuário do IAM.

Para obter mais informações sobre as práticas recomendadas do IAM, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

CloudTrail não tem chaves de contexto específicas do serviço que você possa usar no Condition elemento das declarações de política.

Exemplo: permitir e negar ações para uma trilha especificada

O exemplo a seguir demonstra uma política que permite que os usuários com essa política visualizem o status e a configuração de uma trilha e iniciem e interrompam o registro de uma trilha chamada My-First-Trail. Essa trilha foi criada na região Leste dos EUA (Ohio) (a região inicial) na Conta da AWS com o ID 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:GetEventSelectors" ], "Resource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail" ] } ] }

O exemplo a seguir demonstra uma política que nega explicitamente CloudTrail ações para qualquer trilha que não seja chamada My-First-Trail.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudtrail:*" ], "NotResource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail" ] } ] }

Exemplos: criação e aplicação de políticas para ações em trilhas específicas

Você pode usar permissões e políticas para controlar a capacidade do usuário de realizar ações específicas nas CloudTrail trilhas.

Por exemplo, você não deseja que os usuários do grupo de desenvolvedores da sua empresa iniciem ou interrompam o registro em log em uma trilha específica. No entanto, talvez você queira conceder a eles permissão para realizar as ações DescribeTrails e GetTrailStatus na trilha. Você deseja que os usuários do grupo de desenvolvedores realizem as ações StartLogging ou StopLogging nas trilhas que gerenciam.

É possível criar duas declarações de política e anexá-las ao grupo de desenvolvedores criado por você no IAM. Para obter mais informações sobre grupos do IAM, consulte Grupos do IAM no Manual do usuário do IAM.

Na primeira política, negue as ações StartLogging e StopLogging para o nome de região da Amazon (ARN) da trilha que você especificar. No exemplo a seguir, o Nome de região da Amazon (ARN) da trilha é arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1446057698000", "Effect": "Deny", "Action": [ "cloudtrail:StartLogging", "cloudtrail:StopLogging" ], "Resource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail" ] } ] }

Na segunda política, as GetTrailStatus ações DescribeTrails e são permitidas em todos os CloudTrail recursos:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1446072643000", "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus" ], "Resource": [ "*" ] } ] }

Se um usuário do grupo de desenvolvedores tentar iniciar ou interromper o registro na trilha que você especificou na primeira política, ele receberá uma exceção de acesso negado. Os usuários do grupo de desenvolvedores podem iniciar e interromper o registro nas trilhas que criam e gerenciam.

Os seguintes exemplos mostram o grupo de desenvolvedores configurado em um perfil de AWS CLI chamado devgroup. Primeiro, um usuário de devgroup executa o comando describe-trails.

$ aws --profile devgroup cloudtrail describe-trails

O comando foi concluído com êxito com a seguinte saída:

{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Default", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail", "IsMultiRegionTrail": false, "S3BucketName": "myS3bucket ", "HomeRegion": "us-east-2" } ] }

O usuário executa o comando get-trail-status na trilha que você especificou na primeira política.

$ aws --profile devgroup cloudtrail get-trail-status --name Example-Trail

O comando foi concluído com êxito com a seguinte saída:

{ "LatestDeliveryTime": 1449517556.256, "LatestDeliveryAttemptTime": "2015-12-07T19:45:56Z", "LatestNotificationAttemptSucceeded": "", "LatestDeliveryAttemptSucceeded": "2015-12-07T19:45:56Z", "IsLogging": true, "TimeLoggingStarted": "2015-12-07T19:36:27Z", "StartLoggingTime": 1449516987.685, "StopLoggingTime": 1449516977.332, "LatestNotificationAttemptTime": "", "TimeLoggingStopped": "2015-12-07T19:36:17Z" }

Em seguida, um usuário no grupo devgroup executa o comando stop-logging na mesma trilha.

$ aws --profile devgroup cloudtrail stop-logging --name Example-Trail

O comando retorna uma exceção de acesso negado, como a seguinte:

A client error (AccessDeniedException) occurred when calling the StopLogging operation: Unknown

O usuário executa o comando start-logging na mesma trilha.

$ aws --profile devgroup cloudtrail start-logging --name Example-Trail

Novamente, o comando retorna uma exceção de acesso negado, como a seguinte:

A client error (AccessDeniedException) occurred when calling the StartLogging operation: Unknown

Exemplos: negação de acesso para criar ou excluir armazenamentos de dados de eventos com base em tags

No exemplo de política a seguir, a permissão para criar um armazenamento de dados de eventos com CreateEventDataStore será negada se pelo menos uma das seguintes condições não for atendida:

  • O armazenamento de dados de eventos não tem uma chave de tag stage aplicada a si mesmo

  • O valor da tag do estágio não é alpha, beta, gamma ou prod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloudtrail:CreateEventDataStore", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/stage": "true" } } }, { "Effect": "Deny", "Action": "cloudtrail:CreateEventDataStore", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/stage": [ "alpha", "beta", "gamma", "prod" ] } } } ] }

No exemplo de política a seguir, a permissão para excluir um armazenamento de dados de evento com DeleteEventDataStore será negada se o armazenamento de dados de eventos tiver uma tag stage com um valor deprod. Uma política como essa pode ajudar a proteger um armazenamento de dados de eventos contra exclusão acidental.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloudtrail:DeleteEventDataStore", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }

Usar o console do CloudTrail

Para acessar o console do AWS CloudTrail, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os CloudTrail recursos em seuConta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.

Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente à AWS CLI ou à AWS API. Em vez disso, permita o acesso somente a ações que correspondam a operação de API que estiverem tentando executar.

Concedendo permissões para administração CloudTrail

Para permitir que funções ou usuários do IAM administrem um CloudTrail recurso, como uma trilha, um armazenamento de dados de eventos ou um canal, você deve conceder permissões explícitas para realizar as ações associadas CloudTrail às tarefas. Para a maioria das situações, é possível fazer isso usando uma política gerenciada pela AWS que contém permissões predefinidas.

nota

As permissões que você concede aos usuários para realizar tarefas CloudTrail administrativas não são as mesmas que CloudTrail exigem a entrega de arquivos de log para buckets do Amazon S3 ou o envio de notificações para tópicos do Amazon SNS. Para obter mais informações sobre essas permissões, consulte Política de bucket do Amazon S3 para CloudTrail.

Se você configurar a integração com o Amazon CloudWatch Logs, CloudTrail também requer uma função que ele possa assumir para entregar eventos a um grupo de CloudWatch logs do Amazon Logs. Você deve criar a função que CloudTrail usa. Para obter mais informações, consulte Enviar eventos para o CloudWatch Logs e Conceder permissão para visualizar e configurar as informações do Amazon CloudWatch Logs no console CloudTrail .

As seguintes políticas AWS gerenciadas estão disponíveis para CloudTrail:

  • AWSCloudTrail_FullAccess— Essa política fornece acesso total às CloudTrail ações sobre CloudTrail recursos, como trilhas, armazenamentos de dados de eventos e canais. Essa política fornece as permissões necessárias para criar, atualizar e excluir CloudTrail trilhas, armazenamentos de dados de eventos e canais.

    Essa política também fornece permissões para gerenciar o bucket do Amazon S3, o grupo de CloudWatch logs para Logs e um tópico do Amazon SNS para uma trilha. No entanto, a política AWSCloudTrail_FullAccess gerenciada não fornece permissões para excluir o bucket do Amazon S3, o grupo de CloudWatch logs para Logs ou um tópico do Amazon SNS. Para obter informações sobre políticas gerenciadas para outros serviços da AWS, consulte o Guia de referência de políticas gerenciadas pela AWS.

    nota

    A política AWSCloudTrail_FullAccess não se destina ao compartilhamento generalizado em sua Conta da AWS. Os usuários com esse perfil podem desativar ou reconfigurar as funções de auditoria mais confidenciais e importantes em suas Contas da AWS. Por esse motivo, você só deve aplicar essa política aos administradores da conta. Você deve controlar e monitorar de perto o uso desta política.

  • AWSCloudTrail_ReadOnlyAccess— Essa política concede permissões para visualizar o CloudTrail console, incluindo eventos recentes e histórico de eventos. Essa política também permite visualizar trilhas, armazenamentos de dados de eventos e canais existentes. Os perfis e usuários com essa política podem baixar o histórico de eventos, mas não podem criar ou atualizar trilhas, armazenamentos de dados de eventos ou canais.

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Recursos adicionais

Para saber mais sobre como usar o IAM para conceder às identidades, como usuários e perfis, acesso aos recursos em sua conta, consulte Como configurar o IAM e Gerenciamento de acesso para recursos da AWS no Guia do usuário do IAM.

Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente à AWS CLI ou à API do AWS. Em vez disso, permita o acesso somente às ações que correspondem à operação da API que você está tentando executar.

Permitir que os usuários visualizem suas próprias permissões

Este exemplo mostra como é possível criar uma política que permite que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Conceder permissões personalizadas para CloudTrail usuários

CloudTrail as políticas concedem permissões aos usuários que trabalham com CloudTrail. Se precisar conceder permissões diferentes aos usuários, você pode anexar uma CloudTrail política a um grupo do IAM ou a um usuário. Você pode editar a política para incluir ou excluir permissões específicas. Você também pode criar a sua própria política personalizada. As políticas são documentos JSON que definem as ações que um usuário tem permissão para realizar e os recursos nos quais ele tem permissão para realizar essas ações. Para obter exemplos específicos, consulte Exemplo: permitir e negar ações para uma trilha especificada e Exemplos: criação e aplicação de políticas para ações em trilhas específicas.

Acesso somente leitura

O exemplo a seguir mostra uma política que concede acesso somente para CloudTrail leitura às trilhas. Isso equivale à política gerenciada AWSCloudTrail_ReadOnlyAccess. Ela concede aos usuários permissão para ver informações das trilhas, mas não para criá-las ou atualizá-las.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudtrail:Get*", "cloudtrail:Describe*", "cloudtrail:List*", "cloudtrail:LookupEvents" ], "Resource": "*" } ] }

Nas declarações da política, o elemento Effect especifica se as ações são permitidas ou negadas. O elemento Action lista as ações específicas que o usuário tem permissão para realizar. O elemento Resource lista os recursos da AWS nos quais o usuário tem permissão para realizar essas ações. Para políticas que controlam o acesso às CloudTrail ações, o Resource elemento geralmente é definido como*, um curinga que significa “todos os recursos”.

Os valores no elemento Action correspondem às APIs às quais os serviços oferecem suporte. As ações são precedidas por cloudtrail: para indicar que se referem a ações do CloudTrail . Você pode usar o caractere curinga * no elemento Action, como nos exemplos a seguir:

  • "Action": ["cloudtrail:*Logging"]

    Isso permite todas as CloudTrail ações que terminam com “Logging” (StartLogging,StopLogging).

  • "Action": ["cloudtrail:*"]

    Isso permite todas as CloudTrail ações, mas não ações para outros AWS serviços.

  • "Action": ["*"]

    Isso permite todas as ações da AWS. Essa permissão é adequada a um usuário que atua como um administrador da AWS na sua conta.

A política somente leitura não concede permissão de usuário às ações CreateTrail, UpdateTrail, StartLogging e StopLogging. Os usuários com essa política não têm permissão para criar e atualizar trilhas ou para ativar e desativar o registro. Para ver a lista de CloudTrail ações, consulte a Referência AWS CloudTrail da API.

Acesso total

O exemplo a seguir mostra uma política que concede acesso total CloudTrail a. Isso equivale à política gerenciada AWSCloudTrail_FullAccess. Ele concede aos usuários a permissão para realizar todas as CloudTrail ações. Ele também permite que os usuários registrem eventos de dados no Amazon S3 e AWS Lambda gerenciem arquivos em buckets do Amazon S3, gerenciem CloudWatch como o Logs CloudTrail monitora eventos de log e gerenciem tópicos do Amazon SNS na conta à qual o usuário está associado.

Importante

A política AWSCloudTrail_FullAccess ou permissões equivalentes não se destinam ao compartilhamento por toda a sua conta da AWS. Os usuários com essa função ou acesso equivalente têm a capacidade de desabilitar ou reconfigurar as funções de auditoria mais confidenciais e importantes em suas contas da AWS. Por esse motivo, essa política deve ser aplicada somente aos administradores da conta e o uso dessa política deve ser cuidadosamente controlado e monitorado.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:AddPermission", "sns:CreateTopic", "sns:SetTopicAttributes", "sns:GetTopicAttributes" ], "Resource": [ "arn:aws:sns:*:*:aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy" ], "Resource": [ "arn:aws:s3:::aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketPolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": "cloudtrail:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:*:*:log-group:aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:GetRolePolicy", "iam:GetUser" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "cloudtrail.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:CreateAlias", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lambda:ListFunctions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "dynamodb:ListGlobalTables", "dynamodb:ListTables" ], "Resource": "*" } ] }

Concedendo permissão para visualizar AWS Config informações no console CloudTrail

Você pode visualizar as informações do evento no CloudTrail console, incluindo recursos relacionados a esse evento. Para esses recursos, você pode escolher o ícone do AWS Config para visualizar o cronograma deles no console do AWS Config. Anexe essa política aos seus usuários para conceder a eles acesso AWS Config somente leitura. A política não concede a eles permissão para alterar as configurações em AWS Config.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "config:Get*", "config:Describe*", "config:List*" ], "Resource": "*" }] }

Para ter mais informações, consulte Visualizando recursos referenciados com AWS Config.

Conceder permissão para visualizar e configurar as informações do Amazon CloudWatch Logs no console CloudTrail

Você pode visualizar e configurar a entrega de eventos para o CloudWatch Logs no CloudTrail console se tiver permissões suficientes. Essas são as permissões que podem ser além das concedidas para administradores do CloudTrail. Anexe essa política aos administradores que configurarão e gerenciarão a CloudTrail integração com o CloudWatch Logs. A política não concede a eles permissões diretamente no Logs CloudTrail ou no CloudWatch Logs, mas concede as permissões necessárias para criar e configurar a função que CloudTrail assumirá para entregar eventos com sucesso ao seu grupo de CloudWatch Logs.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:PutRolePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "iam:GetRolePolicy", "iam:GetUser" ], "Resource": "*" }] }

Para ter mais informações, consulte Monitorar arquivos de log do CloudTrail com o Amazon CloudWatch Logs.

Mais informações

Para saber mais sobre como usar o IAM para conceder às identidades, como usuários e perfis, acesso aos recursos em sua conta, consulte Conceitos básicos e Gerenciamento de acesso para recursos da AWS no Guia do usuário do IAM.