Exemplos de políticas baseadas em identidade para 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 AWS CloudTrail

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

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

Para obter detalhes sobre ações e tipos de recursos definidos por CloudTrail, incluindo o formato do 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.

Melhores práticas de política

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 seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões aos seus usuários e cargas de trabalho, use as políticas AWS gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para obter mais informações, consulte políticas AWS gerenciadas ou políticas AWS gerenciadas para funções de trabalho no Guia IAM do usuário.

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

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

  • Use o IAM Access Analyzer para validar suas IAM políticas e garantir permissões seguras e funcionais — o IAM Access Analyzer valida políticas novas e existentes para que as políticas sigam a linguagem da IAM política (JSON) e as melhores práticas. IAM IAMO Access Analyzer fornece mais de 100 verificações de políticas e recomendações práticas para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação da política do IAM Access Analyzer no Guia do IAM Usuário.

  • Exigir autenticação multifator (MFA) — Se você tiver um cenário que exija IAM usuários ou um usuário root Conta da AWS, ative MFA para obter segurança adicional. Para exigir MFA quando API as operações são chamadas, adicione MFA condições às suas políticas. Para obter mais informações, consulte Configurando o API acesso MFA protegido no Guia do IAMusuário.

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

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 a política visualizem o status e a configuração de uma trilha e iniciem e parem de registrar uma trilha chamada My-First-Trail. Essa trilha foi criada na região Leste dos EUA (Ohio) (sua região de origem) 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 não nomeada. 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.

Você pode criar duas declarações de política e anexá-las ao grupo de desenvolvedores no qual você criouIAM. Para obter mais informações sobre grupos emIAM, consulte IAMGrupos no Guia IAM do usuário.

Na primeira política, você nega as StopLogging ações StartLogging e para a trilha ARN que você especifica. No exemplo a seguir, a trilha ARN é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 exemplos a seguir mostram que o grupo de desenvolvedores configurou em um AWS CLI perfil chamadodevgroup. 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": "amzn-s3-demo-bucket", "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" } } } ] }

Usando o CloudTrail console

Para acessar o AWS CloudTrail console, 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 seu Conta 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.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para AWS CLI o. ou AWS API o. Em vez disso, permita o acesso somente às ações que correspondam à API operação que eles estão tentando realizar.

Concedendo permissões para administração CloudTrail

Para permitir que IAM funções ou usuários administrem um CloudTrail recurso, como uma trilha, um repositório de dados de eventos ou um canal, você deve conceder permissões explícitas para realizar as ações associadas CloudTrail às tarefas. Na maioria das situações, você pode usar uma política AWS gerenciada 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 da 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 ter mais informações, consulte Conceder permissão para visualizar e configurar as informações do Amazon CloudWatch Logs no console CloudTrail e Enviando eventos para o CloudWatch Logs.

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 registros para Logs e um SNS tópico da Amazon 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 da AmazonSNS. Para obter informações sobre políticas gerenciadas para outros Serviços da AWS, consulte o Guia de referência de políticas AWS gerenciadas.

    nota

    A AWSCloudTrail_FullAccessa política não se destina a ser compartilhada amplamente entre seus 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 IAM para dar acesso a identidades, como usuários e funções, aos recursos em sua conta, consulte Como configurar IAM e gerenciar o acesso a AWS recursos no Guia do IAM usuário.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para AWS CLI o. ou AWS API o. Em vez disso, permita o acesso somente às ações que correspondam à API operação que você está tentando realizar.

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

Este exemplo mostra como você pode criar uma política que permita IAM aos usuários visualizar as políticas embutidas e gerenciadas que estão anexadas à identidade do usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando o AWS CLI ou. 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 IAM grupo 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. Políticas são JSON documentos que definem as ações que um usuário tem permissão para realizar e os recursos nos quais o usuário 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 é equivalente à política gerenciada AWSCloudTrail_ReadOnlyAccess. Ele concede aos usuários permissão para ver as informações da trilha, mas não para criar ou atualizar trilhas.

{ "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 Resource elemento lista os AWS recursos 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 Action elemento correspondem aos APIs que os serviços suportam. As ações são precedidas por cloudtrail: para indicar que se referem a CloudTrail ações. 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 AWS ações. 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 AWS CloudTrail APIReferência.

Acesso total

O exemplo a seguir mostra uma política que concede acesso total CloudTrail a. Isso é equivalente à 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 nos buckets do Amazon S3, gerenciem CloudWatch como o Logs CloudTrail monitora eventos de log e gerenciem tópicos da SNS Amazon na conta à qual o usuário está associado.

Importante

A AWSCloudTrail_FullAccesspolíticas ou permissões equivalentes não devem ser compartilhadas amplamente em sua AWS conta. Os usuários com essa função ou acesso equivalente têm a capacidade de desativar ou reconfigurar as funções de auditoria mais confidenciais e importantes em suas AWS contas. 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:::amzn-s3-demo-logging-bucket1*" ] }, { "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 AWS Config ícone para visualizar a linha do tempo desse recurso no AWS Config console. Anexe essa política aos seus usuários para conceder a eles acesso somente para leitura AWS Config . 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 obter mais informações, consulte Visualizar 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 permissões que podem estar além das concedidas aos CloudTrail administradores. 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 obter mais informações, consulte Monitorando arquivos de CloudTrail log com o Amazon CloudWatch Logs.

Mais informações

Para saber mais sobre como usar IAM para dar acesso a identidades, como usuários e funções, aos recursos em sua conta, consulte Introdução e Gerenciamento de acesso para AWS recursos no Guia do IAM usuário.