Usar políticas baseadas em identidade (políticas do IAM) para o CloudFront - Amazon CloudFront

Usar políticas baseadas em identidade (políticas do IAM) para o CloudFront

Este tópico fornece exemplos de políticas baseadas em identidade que demonstram como um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções) e, assim, conceder permissões para executar operações em recursos do CloudFront.

Importante

Recomendamos analisar primeiramente os tópicos introdutórios que explicam os conceitos básicos e as opções para gerenciar o acesso aos recursos do CloudFront. Para obter mais informações, consulte Visão geral do gerenciamento de permissões de acesso aos seus recursos do CloudFront.

Veja a seguir uma política de permissões. O Sid, ou o ID de instrução, é opcional.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllCloudFrontPermissions", "Effect": "Allow", "Action": ["cloudfront:*"], "Resource": "*" } ] }

A política concede permissões para executar todas as operações do CloudFront, o que é suficiente para acessar o CloudFront de forma programática. Se estiver usando o console para acessar o CloudFront, consulte Permissões necessárias para usar o console do CloudFront.

Para visualizar uma lista de ações e ARNs que podem ser especificadas para conceder ou negar permissão para usar cada ação, consulte Permissões da API do CloudFront: referência de ações, recursos e condições.

Permissões necessárias para usar o console do CloudFront

Para conceder acesso total ao console do CloudFront, conceda as permissões na seguinte política de permissões:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:*", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }

Veja por que as permissões são necessárias:

acm:ListCertificates

Quando estiver criando e atualizando distribuições usando o console do CloudFront, e quiser configurar o CloudFront para exigir HTTPS entre o visualizador e o CloudFront ou entre o CloudFront e a origem, permite que você visualize uma lista de certificados do ACM.

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

cloudfront:*

Permite executar todas as ações do CloudFront.

cloudwatch:DescribeAlarms e cloudwatch:PutMetricAlarm

Permite criar e exibir alarmes do CloudWatch no console do CloudFront. Consulte também sns:ListSubscriptionsByTopic e sns:ListTopics.

Essas permissões não serão necessárias se você não estiver usando o console do CloudFront.

cloudwatch:GetMetricStatistics

Permite que o CloudFront renderize as métricas do CloudWatch no console do CloudFront.

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

elasticloadbalancing:DescribeLoadBalancers

Quando estiver criando e atualizando distribuições, permite que você visualize uma lista de balanceadores de carga do Elastic Load Balancing na lista de origens disponíveis.

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

iam:ListServerCertificates

Quando estiver criando e atualizando distribuições usando o console do CloudFront, e quiser configurar o CloudFront para exigir HTTPS entre o visualizador e o CloudFront ou entre o CloudFront e a origem, permite que você visualize uma lista de certificados no repositório de certificados do IAM.

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

s3:ListAllMyBuckets

Quando estiver criando e atualizando distribuições, permite que você execute as seguintes operações:

  • Visualizar uma lista de buckets do S3 na lista de origens disponíveis

  • Visualizar uma lista de buckets do S3 nos quais você pode salvar logs de acesso

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

S3:PutBucketPolicy

Ao criar ou atualizar distribuições que restringem o acesso a buckets do S3, permite que um usuário atualize a política do bucket para conceder acesso à identidade de acesso de origem do CloudFront. Para obter mais informações, consulte Restringir acesso ao conteúdo do Amazon S3 usando uma identidade do acesso de origem (OAI).

Essa permissão não é necessária se você não estiver usando o console do CloudFront.

sns:ListSubscriptionsByTopic e sns:ListTopics

Ao criar alarmes do CloudWatch no console do CloudFront, permite escolher um tópico do SNS para notificações.

Essas permissões não serão necessárias se você não estiver usando o console do CloudFront.

waf:GetWebACL e waf:ListWebACLs

Permite exibir uma lista de ACLs da Web do AWS WAF no console do CloudFront.

Essas permissões não serão necessárias se você não estiver usando o console do CloudFront.

AWSPolíticas gerenciadas (predefinidas) da para o CloudFront

AWS A aborda muitos casos de uso comuns fornecendo políticas autônomas do IAM que são criadas e administradas pela AWS. Essas políticas gerenciadas pela AWS concedem permissões necessárias para casos de uso comuns para que você possa evitar ter que investigar quais permissões são necessárias. Para obter mais informações, consulte Políticas gerenciadas da AWS no Guia do usuário do IAM. Para o CloudFront, o IAM fornece duas políticas gerenciadas:

nota

É possível analisar essas políticas de permissões fazendo login no console do IAM e pesquisando políticas específicas. Além disso, é possível criar suas próprias políticas personalizadas do IAM para conceder permissões para operações da API do CloudFront. Você pode anexar essas políticas personalizadas a usuários ou grupos do IAM que exijam essas permissões.

Exemplos de política gerenciada pelo cliente

Você pode criar suas próprias políticas personalizadas do IAM para conceder permissões para ações da API do CloudFront. Você pode anexar essas políticas personalizadas a usuários ou grupos do IAM que exijam as permissões especificadas. Essas políticas funcionam quando você está usando a API do CloudFront, os AWS SDKs ou a AWS CLI. Os exemplos a seguir mostram permissões para alguns casos de uso comuns. Para a política que concede acesso total a um usuário ao CloudFront, consulte Permissões necessárias para usar o console do CloudFront.

Exemplo 1: permitir acesso de leitura a todas as distribuições

A política de permissões a seguir concede ao usuário permissões para visualizar todas as distribuições no console do CloudFront:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }

Exemplo 2: permitir criar, atualizar e excluir distribuições

A política de permissões a seguir permite que os usuários criem, atualizem e excluam distribuições usando o console do CloudFront:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }

A permissão cloudfront:ListCloudFrontOriginAccessIdentities permite que os usuários concedam automaticamente a uma identidade de acesso de origem a permissão para acessar objetos em um bucket do Amazon S3. Se você quiser que os usuários também possam criar identidades de acesso de origem, é necessário conceder a permissão cloudfront:CreateCloudFrontOriginAccessIdentity.

Exemplo 3: permitir a criação e a listagem de invalidações

A política de permissões a seguir permite que os usuários criem e indiquem invalidações. Ela inclui acesso de leitura a distribuições do CloudFront, pois você cria e visualiza invalidações exibindo as configurações de uma distribuição:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetStreamingDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "cloudfront:CreateInvalidation", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }