Exemplos de políticas baseadas em identidade para o AWS CloudTrail
Por padrão, os usuários e perfis não têm permissão para criar ou modificar recursos do CloudTrail. Para conceder permissão aos usuários para executar ações nos recursos que eles precisam, um administrador do IAM pode criar políticas do IAM.
Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte Criar políticas do IAM (console) no Guia do usuário do IAM.
Para obter detalhes sobre ações e tipos de recurso definidos pelo CloudTrail, incluindo o formato dos ARNs para cada tipo de recurso, consulte Ações, recursos e chaves de condição do AWS CloudTrail na Referência de autorização do serviço.
Tópicos
Práticas recomendadas de política
As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do CloudTrail em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
-
Comece com as políticas gerenciadas pela AWS 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 políticas gerenciadas pela AWS, que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS que são 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 funções 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: você pode adicionar uma condição às 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 usando SSL. Também pode 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 CloudFormation. Para obter mais informações, consulte Elementos da política JSON do IAM: condição no Guia 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 cem verificações de política e recomendações práticas para ajudar 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.
O CloudTrail não tem chaves de contexto específicas do serviço que podem ser usadas no elemento Condition das declarações da 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.
O exemplo a seguir demonstra uma política que nega explicitamente as ações do CloudTrail para qualquer trilha diferente de 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 em trilhas do CloudTrail.
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.
Na segunda política, as ações DescribeTrails e GetTrailStatus são permitidas em todos os recursos do CloudTrail:
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": "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
stageaplicada a si mesmo -
O valor da tag do estágio não é
alpha,beta,gammaouprod.
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.
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 recursos do CloudTrail em sua Conta da AWS. Caso crie uma política baseada em identidade mais restritiva 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 à API do AWS. Em vez disso, permita o acesso somente a ações que correspondam à operação de API que estiverem tentando executar.
Conceder permissões para administração do CloudTrail
Para permitir que perfis ou usuários do IAM administrem um recurso do CloudTrail, como uma trilha, um armazenamento de dado de eventos ou um canal, é necessário conceder permissões explícitas para realizar as ações associadas às tarefas do CloudTrail. 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 concedidas aos usuários para realizar tarefas de administração do CloudTrail não são iguais às permissões que o próprio CloudTrail requer para entregar arquivos de log aos buckets do Amazon S3 ou enviar notificações aos tópicos do Amazon SNS. Para obter mais informações sobre essas permissões, consulte Política de bucket do Amazon S3 para o CloudTrail.
Se você configurar a integração com o Amazon CloudWatch Logs, o CloudTrail também exigirá uma função que possa assumir para fornecer eventos a um grupo de logs do Amazon CloudWatch Logs. É necessário usar o perfil usado pelo CloudTrail. Para obter mais informações, consulte Conceder permissão para visualizar e configurar informações do Amazon CloudWatch Logs no console do CloudTrail e Enviar eventos para o CloudWatch Logs.
As seguintes políticas gerenciadas pela AWS estão disponíveis para o CloudTrail:
-
AWSCloudTrail_FullAccess – essa política fornece acesso total às ações do CloudTrail nos recursos do CloudTrail, como trilhas, armazenamentos de dados de eventos e canais. Essa política fornece as permissões necessárias para criar, atualizar e excluir trilhas, repositórios de dados de eventos e canais do CloudTrail.
Essa política também fornece permissões para gerenciar o bucket do Amazon S3, o grupo de logs do CloudWatch Logs e um tópico do Amazon SNS para uma trilha. No entanto, a política gerenciada pela
AWSCloudTrail_FullAccessnão fornece permissões para excluir o bucket do Amazon S3, o grupo de logs do CloudWatch 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 console do CloudTrail, incluindo eventos recentes e o 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:
-
Usuários e grupos no Centro de Identidade do AWS IAM:
Crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do Centro de Identidade do AWS IAM.
-
Usuários gerenciados no IAM com provedor de identidades:
Crie um perfil para a federação de identidades. Siga as instruções em Criando um perfil para um provedor de identidades de terceiros (federação) no Guia do Usuário do IAM.
-
Usuários do IAM:
-
Crie um perfil que seu usuário possa assumir. Siga as instruções em Criação de um perfil para um usuário do IAM no Guia do usuário do IAM.
-
(Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em Adição de permissões a um usuário (console) no Guia do usuário do IAM.
-
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 fizerem chamadas somente a AWS CLI ou a 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 criar uma política que permita 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 API da AWS.
{ "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 a usuários do CloudTrail
As políticas do CloudTrail concedem permissões a usuários que trabalham com o CloudTrail. Se você precisar conceder permissões diferentes aos usuários, anexe uma política do CloudTrail 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.
Sumário
Acesso somente leitura.
O exemplo a seguir mostra uma política que concede acesso somente leitura a trilhas do CloudTrail. 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.
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 ações do CloudTrail, o elemento Resource é geralmente definido como *, um caractere 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 ações do CloudTrail que terminam com "Registro em log" (
StartLogging,StopLogging). -
"Action": ["cloudtrail:*"]Isso permite todas as ações do CloudTrail, mas não as ações de outros serviços da AWS.
-
"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 completa de ações do CloudTrail, consulte o documento AWS CloudTrail Referência da API.
Acesso total.
O exemplo a seguir mostra uma política que concede acesso total ao CloudTrail. Isso equivale à política gerenciada AWSCloudTrail_FullAccess. Ela concede aos usuários a permissão para realizar todas as ações do CloudTrail. Ela também permite que os usuários registrem eventos de dados no Amazon S3 e no AWS Lambda, gerenciem arquivos em buckets do Amazon S3, como o CloudWatch Logs monitora eventos de log do CloudTrail e os 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.
Conceder permissão para visualizar informações do AWS Config no console do CloudTrail
Você pode visualizar informações do evento no console do CloudTrail, incluindo os recursos relacionados a ele. 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.
Para obter mais informações, consulte Visualizar recursos referenciados com AWS Config.
Conceder permissão para visualizar e configurar informações do Amazon CloudWatch Logs no console do CloudTrail
Você pode visualizar e configurar a entrega de eventos para o CloudWatch Logs no console do CloudTrail 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 a administradores que vão configurar e gerenciar a integração do CloudTrail com o CloudWatch Logs. A política não concede permissões a eles no CloudTrail ou no CloudWatch Logs diretamente, mas, em vez disso, concede as permissões necessárias para criar e configurar a função que o CloudTrail assumirá para fornecer eventos com êxito ao grupo do CloudWatch Logs.
Para obter 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.