Geração de política do IAM Access Analyzer
Como administrador ou desenvolvedor, você pode conceder permissões a entidades do IAM (usuários ou funções) além do que elas exigem. O IAM fornece várias opções para ajudar você a refinar as permissões concedidas. Uma opção é gerar uma política do IAM baseada na atividade de acesso para uma entidade. O IAM Access Analyzer revisa seus logs do AWS CloudTrail e gera um modelo de política que contém as permissões que a entidade usou no intervalo de datas especificado. Você pode usar o modelo para criar uma política com permissões refinadas que concedem apenas as permissões detalhadas para dar suporte ao seu caso de uso específico.
Tópicos
- Como funciona a geração de políticas
- Informações em nível de serviço e ação
- O que é necessário saber para gerar políticas
- Permissões necessárias para gerar uma política
- Gerar uma política com base na atividade do CloudTrail (console)
- Gerar uma política usando dados do AWS CloudTrail em outra conta
- Gerar uma política com base na atividade do CloudTrail (AWS CLI)
- Gerar uma política com base na atividade do CloudTrail (API da AWS)
- Serviços de geração de política do IAM Access Analyzer
Como funciona a geração de políticas
IAM Access Analyzer analisa seus eventos do CloudTrail para identificar ações e serviços usados por uma entidade (usuário ou função) do IAM. Em seguida, gera uma política do IAM com base nessa atividade. Você pode refinar as permissões de uma entidade ao substituir uma política de permissões ampla anexada à entidade pela política gerada. Veja a seguir uma visão geral de alto nível do processo de geração de políticas.
-
Set up for policy template generation (Configurar a geração de modelo de política): você especifica um período de tempo de até 90 dias para o IAM Access Analyzer analisar seus histórico de eventos do AWS CloudTrail. Você deve especificar uma função de serviço existente ou criar uma nova. A função de serviço dá ao IAM Access Analyzer acesso a sua trilha do CloudTrail e informações do último serviço acessado para identificar os serviços e ações que foram usados. Você deve especificar a trilha do CloudTrail que está registrando os logs dos eventos na conta antes de gerar uma política. Para obter mais informações sobre cotas do IAM Access Analyzer de dados do CloudTrail, consulte Cotas do IAM Access Analyzer.
-
Gerar política – IAM Access Analyzer gera uma política com base na atividade de acesso em seus eventos do CloudTrail.
-
Revisar e personalizar a política – Depois que a política for gerada, você poderá revisar os serviços e ações usados pela entidade durante o intervalo de datas especificado. Você pode personalizar ainda mais a política adicionando ou removendo permissões, especificando recursos e adicionando condições ao modelo de política.
-
Criar e anexar uma política – Você tem a opção de salvar a política gerada com a criação de uma política gerenciada. Você pode anexar a política criada ao usuário ou função cuja atividade foi usada para gerar a política.
Informações em nível de serviço e ação
Quando IAM Access Analyzer gera uma política do IAM, as informações são retornadas para ajudar você a personalizar ainda mais a política. Duas categorias de informações podem ser retornadas quando uma política é gerada:
-
Policy with action-level information (Política com informações no nível de ação): para alguns produtos da AWS, como o Amazon EC2, o IAM o Access Analyzer podem identificar as ações encontradas nos eventos do CloudTrail e listar as ações usadas na política gerada. Para obter uma lista dos serviços compatíveis, consulte Serviços de geração de política do IAM Access Analyzer. Para alguns serviços, o IAM Access Analyzer solicita que você adicione ações para os serviços à política gerada.
-
A política com informações em nível de serviço – IAM Access Analyzer usa as últimas informações acessadas para criar um modelo de política com todos os serviços usados recentemente. Ao usar o AWS Management Console, solicitamos que você revise os serviços e adicione ações para concluir a política.
Para obter uma lista de ações em cada serviço, consulte Ações, recursos e chaves de condição para produtos da AWS na Referência de autorização do serviço.
O que é necessário saber para gerar políticas
Antes de gerar uma política, analise os seguintes detalhes importantes.
-
Habilitar uma trilha do CloudTrail – Você deve ter uma trilha do CloudTrail habilitada na sua conta para gerar uma política com base na atividade de acesso. Ao criar uma trilha do CloudTrail, o CloudTrail envia eventos relacionados à sua trilha para um bucket do Amazon S3 especificado por você. Para saber como criar uma trilha do CloudTrail, consulte Criar uma trilha para a conta da AWS no Guia do usuário do AWS CloudTrail.
-
Data events not available (Eventos de dados não disponíveis): o IAM Access Analyzer não identifica a atividade no nível de ação para eventos de dados, como eventos de dados do Amazon S3, em políticas geradas.
-
PassRole – A ação
iam:PassRole
não é rastreada pelo CloudTrail e não é incluída nas políticas geradas. -
Reduzir o tempo de geração de políticas – Para gerar uma política mais rapidamente, reduza o intervalo de datas especificado durante a configuração da geração de políticas.
-
Usar CloudTrail para auditoria – Não use a geração de políticas para fins de auditoria; em vez disso, use CloudTrail. Para obter mais informações sobre o uso do CloudTrail, consulte Registro em log de chamadas de API do IAM e do AWS STS com o AWS CloudTrail.
-
Ações negadas: a geração de políticas analisa todos os eventos do CloudTrail, inclusive as ações negadas.
-
Uma política por console de IAM – Você pode gerar uma política por vez no console de IAM.
-
Console de IAM de disponibilidade de políticas geradas – Você pode analisar uma política gerada no console de IAM até sete dias após ela ter sido gerada. Após sete dias, você deverá gerar uma nova política.
-
Policy generation quotas (Cotas de geração de políticas): para obter mais informações sobre cotas de geração de políticas do IAM Access Analyzer, consulte Cotas do IAM Access Analyzer.
-
As tarifas do Amazon S3 Standard se aplicam: quando você usa o recurso de geração de políticas, o IAM Access Analyzer analisa os logs do CloudTrail no bucket do S3. Não há cobranças adicionais de armazenamento para acessar os logs do CloudTrail para geração de políticas. A AWS cobra as tarifas padrão do Amazon S3 para solicitações e transferência de dados de logs do CloudTrail armazenados no bucket do S3.
-
Suporte para AWS Control Tower: a geração de políticas não oferece suporte ao AWS Control Tower para a geração de políticas.
Permissões necessárias para gerar uma política
As permissões que você precisa para gerar uma política pela primeira vez são diferentes daquelas necessárias para gerar uma política para usos subsequentes.
Configuração pela primeira vez
Ao gerar uma política pela primeira vez, você deve escolher uma função de serviço existente adequada em sua conta ou criar uma nova função de serviço. A função de serviço dá IAM Access Analyzer acesso ao CloudTrail e às informações do último serviço acessado em sua conta. Apenas os administradores devem ter as permissões necessárias para criar e configurar funções. Portanto, recomendamos que um administrador crie a função de serviço durante a primeira configuração. Para saber mais sobre as permissões necessárias para criar funções de serviço, consulte Criar uma função para delegar permissões a um produto da AWS.
Ao criar uma função de serviço, você configura duas políticas para a função. Você anexa uma política de permissões do IAM à função que especifica o que a função pode fazer. Você também anexa uma política de confiança da função que especifica o principal que pode usar a função.
O primeiro exemplo de política mostra a política de permissões para a função de serviço necessária para gerar uma política. O segundo exemplo de política mostra a política de confiança da função que é necessária para a função de serviço. Você pode usar essas políticas para ajudar na criação de uma função de serviço ao usar a API AWS ou AWS CLI para gerar uma política. Ao usar o console do IAM para criar uma função de serviço como parte do processo de geração de políticas, nós geramos essas políticas para você.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudtrail:GetTrail", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetServiceLastAccessedDetails", "iam:GenerateServiceLastAccessedDetails" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }
O exemplo a seguir mostra a política de confiança da função com as permissões que permitem que o IAM Access Analyzer assuma a função.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "access-analyzer.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Usos subsequentes
Para gerar políticas no AWS Management Console, um usuário do IAM deve ter uma política de permissões que permita transmitir a função de serviço usada para geração de políticas para o IAM Access Analyzer. A ação iam:PassRole
geralmente é acompanhada por iam:GetRole
para que o usuário possa obter os detalhes da função a ser transmitida. Neste exemplo, o usuário pode transmitir apenas funções que existam na conta especificada com nomes que comecem com AccessAnalyzerMonitorServiceRole*
: Para saber mais sobre como passar funções do IAM para produtos da AWS, consulte Conceder permissões a um usuário para passar uma função para um produto da AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUserToPassRole", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::
123456789012
:role/service-role/AccessAnalyzerMonitorServiceRole*" } ] }
Você deve ter as seguintes permissões do IAM Access Analyzer para gerenciar políticas no AWS Management Console, na API da AWS ou na AWS CLI, conforme mostrado na seguinte declaração de política.
{ "Sid": "AllowUserToGeneratePolicy", "Effect": "Allow", "Action": [ "access-analyzer:CancelPolicyGeneration", "access-analyzer:GetGeneratedPolicy", "access-analyzer:ListPolicyGenerations", "access-analyzer:StartPolicyGeneration" ], "Resource": "*" }
Para usos pela primeira vez e subsequentes
Quando você usa o AWS Management Console para gerar uma política, deve ter a permissão cloudtrail:ListTrails
para listar as trilhas do CloudTrail em sua conta, conforme mostrado na instrução de política a seguir.
{ "Sid": "AllowUserToListTrails", "Effect": "Allow", "Action": [ "CloudTrail:ListTrails" ], "Resource": "*" }
Gerar uma política com base na atividade do CloudTrail (console)
Você pode gerar uma política para um usuário ou função do IAM.
Etapa 1: gerar uma política com base na atividade do CloudTrail
O procedimento a seguir explica como gerar uma política para uma função usando o AWS Management Console.
Gerar uma política para uma função do IAM
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Roles (Funções).
nota
As etapas para gerar uma política com base na atividade de um usuário do IAM são quase idênticas. Para fazer isso, escolha Users(Usuários) em vez de Roles (Funções).
-
Na lista de funções na sua conta, escolha o nome da função cuja atividade você deseja usar para gerar uma política.
-
Na guia Permissions (Permissões), na seção Gerar políticas com base em eventos do CloudTrail, escolha Generate policy (Gerar política).
-
Na página Generate policy (Gerar política), especifique o período em que IAM Access Analyzerdeseja analisar seus eventos do CloudTrail para ações realizadas com a função. Você pode escolher um intervalo de até 90 dias. Recomendamos que escolha o menor período possível para reduzir o tempo de geração de políticas.
-
Na seção CloudTrail access (Acesso ao CloudTrail), escolha uma função existente adequada ou crie uma nova função se não existir uma função adequada. A função concede ao IAM Access Analyzer permissões para acessar seus dados do CloudTrail em seu nome para revisar a atividade de acesso e identificar os serviços e ações que foram usados. Para saber mais sobre as permissões necessárias para essa função, consulte Permissões necessárias para gerar uma política.
-
Na seção CloudTrail trilha a ser analisada, especifique a trilha do CloudTrail que registra logs de eventos para a conta.
Se você escolher uma trilha do CloudTrail que armazene logs em outra conta, uma caixa de informações sobre o acesso entre contas será exibida. O acesso entre contas requer configuração adicional. Para saber mais, consulte Choose a role for cross-account access mais adiante neste tópico.
-
Escolha Generate policy (Gerar política).
-
Enquanto a geração de políticas está em andamento, você é levado de volta à página Roles Summary (Resumo das funções) na guia Permissions (Permissões). Aguarde até que o status na seção Detalhes da solicitação de política exiba Success(Sucesso) e escolha View generated policy (Exibir política gerada). Você pode visualizar a política gerada por até sete dias. Se você gerar outra política, ela substituirá a política existente.
Etapa 2: revisar permissões e adicionar ações para serviços usados
Revise os serviços e ações que o IAM Access Analyzer identificou que foram usados pela função. Você pode adicionar ações para todos os serviços usados ao modelo de política gerado.
-
Analise as seguintes seções:
-
Na página Review permissions (Revisar permissões), analise a lista de Actions included in the generated policy (Ações incluídas na política gerada). A lista exibe os serviços e as ações que o IAM Access Analyzer identificou que foram usadas pela função no intervalo de datas especificado.
-
A seção Services used (Serviços usados) exibe outros serviços que o IAM Access Analyzer identificou que foram usados pela função no intervalo de datas especificado. As informações sobre quais ações foram usadas podem não estar disponíveis para os serviços listados nesta seção. Use os menus de cada serviço listado para escolher manualmente as ações que deseja incluir na política.
-
-
Quando terminar de adicionar ações, escolha Next (Avançar).
Etapa 3: personalizar ainda mais a política gerada
Você pode personalizar ainda mais a política adicionando ou removendo permissões ou especificando recursos.
Para personalizar a política gerada
-
Atualize o modelo de política. O modelo da política contém espaços reservados do ARN do recurso para ações que oferecem suporte a permissões em nível de recurso, segundo as indicações da imagem a seguir. Permissões no nível do recurso se referem à capacidade de especificar em quais recursos os usuários têm permissão para realizar ações. Recomendamos que você use ARNs para especificar os recursos individuais na política para ações que oferecem suporte a permissões em nível do recurso. Você pode substituir os espaços reservados de ARNs do recurso por ARNs de recurso válidos para o seu caso de uso.
Se uma ação não for compatível com permissões em nível do recurso, você deverá usar um curinga
*
para especificar que todos os recursos podem ser afetados pela ação. Para saber quais produtos da AWS oferecem suporte a permissões no nível de recurso, consulte Produtos da AWS que funcionam com o IAM. Para obter uma lista de ações em cada serviço e saber quais ações são compatíveis com permissões em nível do recurso, consulte Ações, recursos e chaves de condição para serviços da AWS. -
(Opcional) Adicione, modifique ou remova declarações de política JSON no modelo. Para saber mais sobre como escrever políticas de JSON, consulte Criar políticas do IAM (console).
-
Quando você terminar de personalizar o modelo de política, terá as seguintes opções:
-
(Opcional) Você pode copiar o JSON no modelo para usar separadamente fora da página Generated policy (Política gerada). Por exemplo, se você quiser usar o JSON para criar uma política em uma conta diferente. Se a política em seu modelo exceder o limite de 6.144 caracteres das políticas JSON, ela será dividida em várias políticas.
-
Escolha Next (Próximo) para analisar e criar uma política gerenciada na mesma conta.
-
Etapa 4: revisar e criar uma política gerenciada
Se você tiver permissões para criar e anexar políticas IAM, poderá criar uma política gerenciada a partir da política gerada. Em seguida, você poderá anexar a política a um usuário ou função na sua conta.
Para analisar e criar uma política
-
Na página Review and create managed policy (Revisar e criar uma política gerenciada), digite um Name (Nome) e uma Description (Descrição) (opcional) para a política que você está criando.
-
(Opcional) Na seção Summary (Resumo), você pode analisar as permissões que serão incluídas na política.
-
(Opcional) Adicione metadados à política associando tags como pares de chave-valor. Para obter mais informações sobre como usar etiquetas no IAM, consulte Recursos de etiquetas do IAM.
-
Quando terminar, execute uma as seguintes ações:
-
Você pode anexar a nova política diretamente à função que foi usada para gerar a política. Para fazer isso, perto da parte inferior da página, marque a caixa de seleção ao lado de Attach policy to
seuRolename
(Anexar política ao) (seu nome completo). Em seguida, escolha Create and attach policy (Criar e anexar política). -
Caso contrário, escolha Create policy (Criar política). Você pode encontrar a política criada na lista de políticas no painel de navegação Policies (Políticas) do console do IAM.
-
-
Você pode anexar a política criada a uma entidade em sua conta. Depois de anexar a política, você pode remover qualquer outra política excessivamente ampla que possa estar anexada à entidade. Para saber como anexar uma política gerenciada, consulte Adicionar permissões de identidade do IAM (console).
Gerar uma política usando dados do AWS CloudTrail em outra conta
Você pode criar trilhas do CloudTrail que armazenam dados em contas centrais para simplificar as atividades de governança. Por exemplo, você pode usar o AWS Organizations para criar uma trilha que registre todos os eventos para todas as Contas da AWS nessa organização. A trilha pertence a uma conta central. Se você quiser gerar uma política para um usuário ou uma função em uma conta diferente da conta em que seus dados de log do CloudTrail estão armazenados, você deve conceder acesso entre contas. Para fazer isso, você precisa de uma função e uma política de bucket que concedam permissões do IAM Access Analyzer aos logs do CloudTrail. Para obter mais informações sobre como criar trilhas do Organizations, consulte Criar uma trilha para uma organização.
Neste exemplo, suponha que você deseje gerar uma política para um usuário ou uma função na conta A. A trilha do CloudTrail na conta A armazena logs do CloudTrail em um bucket na conta B. Antes de gerar uma política, você deve fazer as seguintes atualizações:
-
Escolha uma função existente ou crie uma nova função de serviço que conceda ao IAM Access Analyzer acesso ao bucket na conta B (onde seus logs do CloudTrail estão armazenados).
-
Atualize a política de propriedade de objetos de bucket e permissões de bucket do Amazon S3 na conta B para permitir que o IAM Access Analyzer acesse objetos no bucket.
Etapa 1: Escolher ou criar uma função para acesso entre contas
-
Na tela Generate policy (Gerar política), a opção Use an existing role (Usar uma função existente) é pré-selecionada para você se existir uma função com as permissões necessárias em sua conta. Caso contrário, escolha Create and use a new service role (Criar e usar uma nova função de serviço). A nova função é usada para conceder acesso do IAM Access Analyzer aos logs do CloudTrail na conta B.
Etapa 2: Verificar ou atualizar a configuração de bucket do Amazon S3 na conta B
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
Na lista Buckets, escolha o nome do bucket onde seus logs de trilha do CloudTrail estão armazenados.
-
Selecione a guia Permissions (Permissões) e localize a seção Object ownership (Propriedade de objeto).
Use as configurações de bucket de Amazon S3 Object Ownership (Propriedade de objetos do Amazon S3) para controlar a propriedade de objetos que são carregados nos buckets. Por padrão, quando outras Contas da AWS carregam objetos no seu bucket, os objetos pertencem à conta que faz o upload. Para gerar uma política, todos os objetos do bucket devem pertencer ao proprietário do bucket. Dependendo do caso de uso de ACL, talvez seja necessário alterar a configuração Object Ownership (Propriedade do objeto) para o bucket. Defina Object Ownership (Propriedade do objeto) como uma das opções a seguir.
-
Bucket owner enforced (Proprietário do bucked obrigatório) (recomendado)
-
Bucket owner preferred (Proprierário do bucket preferencial)
Importante
Para gerar uma política com sucesso, os objetos do bucket devem pertencer ao proprietário do bucket. Se escolher Bucket owner preferred (Proprierário do bucket preferencial), você só poderá gerar uma política para o período de tempo após a alteração da propriedade do objeto.
Para saber mais sobre propriedade de objetos no Amazon S3, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket no Guia do Usuário do Amazon S3.
-
-
Adicione permissões à política de bucket do Amazon S3 na conta B para permitir acesso à função na conta A.
A política de exemplo a seguir permite
ListBucket
eGetObject
para o bucket chamadoamzn-s3-demo-bucket
. Ela permitirá o acesso se a função que acessa o bucket pertencer a uma conta em sua organização e tiver um nome que comece comAccessAnalyzerMonitorServiceRole
. O uso deaws:PrincipalArn
como umaCondition
no elementoResource
garante que a função só possa acessar a atividade da conta se ela pertencer à conta A. É possível substituiramzn-s3-demo-bucket
pelo nome do bucket,optional-prefix
por um prefixo opcional para o bucket eorganization-id
pelo ID da organização.{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyGenerationBucketPolicy", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/optional-prefix
/AWSLogs/organization-id
/${aws:PrincipalAccount}/*" ], "Condition": { "StringEquals": { "aws:PrincipalOrgID": "organization-id
" }, "StringLike": { "aws:PrincipalArn": "arn:aws:iam::${aws:PrincipalAccount}:role/service-role/AccessAnalyzerMonitorServiceRole*" } } } ] } -
Se você criptografar logs usando o AWS KMS, atualize a política de chave do AWS KMS na conta em que você armazena os logs do CloudTrail para conceder ao IAM Access Analyzer acesso para usar a sua chave, conforme mostrado no exemplo de política a seguir. Substitua
CROSS_ACCOUNT_ORG_TRAIL_FULL_ARN
pelo ARN da sua trilha eorganization-id
pelo ID da sua organização.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:cloudtrail:arn": "
CROSS_ACCOUNT_ORG_TRAIL_FULL_ARN
", "aws:PrincipalOrgID": "organization-id
" }, "StringLike": { "kms:ViaService": [ "access-analyzer.*.amazonaws.com", "s3.*.amazonaws.com" ], "aws:PrincipalArn": "arn:aws:iam::${aws:PrincipalAccount}:role/service-role/AccessAnalyzerMonitorServiceRole*" } } } ] }
Gerar uma política com base na atividade do CloudTrail (AWS CLI)
Você pode usar os seguintes comandos para gerar uma política usando o AWS CLI.
Para gerar uma política
Para exibir uma política gerada
Para cancelar uma solicitação de geração de política
Para exibir uma lista de solicitações de geração de políticas
Gerar uma política com base na atividade do CloudTrail (API da AWS)
Você pode usar as seguintes operações para gerar uma política usando a API AWS.