Visão geral do gerenciamento de permissões de acesso aos recursos do CloudFront - Amazon CloudFront

Visão geral do gerenciamento de permissões de acesso aos recursos do CloudFront

Cada recurso da AWS pertence a uma conta da AWS, e as permissões para criá-lo ou acessá-lo são regidas por políticas de permissões.

nota

Administrador de conta (ou usuário administrador) é um usuário com privilégios correspondentes. Para obter mais informações sobre administradores, consulte Práticas recomendadas do IAM no Guia do usuário do IAM.

Ao conceder permissões, você determina quem as recebe, os recursos relacionados a elas e as ações permitidas.

ARNs para recursos do CloudFront

Todos os recursos do CloudFront, incluindo distribuições, invalidações, identidades do acesso de origem e funções, usam o mesmo formato para os nomes do recurso da Amazon (ARNs):

arn:aws:cloudfront::AWS_account_ID:resource_type/resource_ID

O CloudFront fornece ações de API para trabalhar com cada um desses tipos de recurso. Para obter mais informações, consulte a Referência da API do Amazon CloudFront. Para visualizar uma lista de ações e o ARN que você especifica 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.

Informações sobre propriedade de recursos

Uma conta da AWS é proprietária dos recursos criados na conta, independentemente de quem os criou. Mais especificamente, o proprietário do recurso é a conta da AWS da entidade principal (isto é, a conta raiz, um usuário do IAM ou uma função do IAM) que autentica a solicitação de criação de recursos.

Os exemplos a seguir mostram como isso funciona:

  • Se você usar as credenciais da conta raiz de sua conta da AWS para criar uma distribuição, sua conta da AWS será proprietária da distribuição.

  • Se você criar um usuário do IAM em sua conta da AWS e lhe conceder permissões para criar uma distribuição, ele poderá criar uma distribuição. A conta da AWS que criou o usuário é proprietária da distribuição.

  • Se você criar uma função do IAM em sua conta da AWS com permissões para criar uma distribuição, qualquer pessoa capaz de assumir a respectiva função poderá criar uma distribuição. Sua conta da AWS, à qual a função pertence, é proprietária da distribuição.

Gerenciamento de acesso aos recursos

Uma política de permissões especifica quem tem acesso a quê. Esta seção explica as opções para criar políticas de permissões do CloudFront. Para obter informações gerais sobre a sintaxe e as descrições de política do IAM, consulte a Referência da política do AWS IAM no Guia do usuário do IAM.

As políticas associadas a uma identidade do IAM e as políticas associadas a um recurso são conhecidas como políticas baseadas em identidade (políticas do IAM) e políticas baseadas em recurso, respectivamente. O CloudFront não comporta políticas baseadas em recursos, mas aceita políticas em nível de recurso. Para obter mais informações sobre os tipos de política de permissões comportados pelo CloudFront, consulte Gerenciamento de acesso aos recursos.

Políticas baseadas em identidade (políticas do IAM)

Você pode anexar políticas a identidades do IAM. Por exemplo, você pode fazer o seguinte:

  • Vincular uma política de permissões a um usuário ou grupo em sua conta: um administrador da conta pode usar uma política de permissões que esteja associada a um usuário específico a fim de conceder permissões a ele para criar uma distribuição.

  • Anexar uma política de permissões a uma função (conceder permissões entre contas): você pode conceder permissões para executar ações do CloudFront a um usuário criado em outra conta da AWS. Para fazer isso, anexe uma política de permissões a uma função do IAM e permita que o usuário da outra conta assuma a função. O exemplo a seguir explica como isso funciona para duas contas da AWS, conta A e conta B:

    1. O administrador da conta A cria uma função do IAM e anexa à função uma política de permissões que concede permissões para criar ou acessar recursos de propriedade da conta A.

    2. O administrador da conta A associa uma política de confiança à função. A política de confiança identifica a conta B como a principal que pode assumir a função.

    3. O administrador da conta B pode delegar permissões para que usuários ou grupos da conta B assumam a função. Isso permite que os usuários na conta B criem ou acessem recursos na conta A.

    Para obter mais informações sobre como delegar permissões para usuários em outra conta da AWS, consulte Gerenciamento de acesso no Guia do usuário do IAM.

O exemplo de política a seguir permite que um usuário execute a ação CreateDistribution para criar, de modo programático, uma distribuição para sua conta da AWS:

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

Para obter informações sobre as permissões necessárias para executar operações usando o console do CloudFront, consulte Permissões necessárias para usar o console do CloudFront. Para obter mais informações sobre como anexar políticas a identidades para o CloudFront, consulte Usar políticas baseadas em identidade (políticas do IAM) para o CloudFront. Para obter mais informações sobre usuários, grupos, funções e permissões, consulte Identidades (usuários, grupos e funções) no Guia do usuário do IAM.

Políticas em nível de recurso

Em alguns casos, talvez queira conceder determinado nível de acesso a um recurso especificado por você. Por exemplo, acesso somente a ações específicas em tal recurso. Para implementar isso, alguns serviços da AWS permitem que você anexe diretamente uma política ao recurso. Por exemplo, é assim que o Amazon S3 e o OpenSearch implementam o controle de acesso a recursos. O CloudFront oferece a mesma flexibilidade, mas usa um método diferente. Em vez de anexar uma política a um recurso, você especifica o recurso em uma política.

Por exemplo, a política a seguir mostra como você pode permitir o acesso de atualização, exclusão e criação de invalidações a uma distribuição que você especifica por meio do ARN da distribuição. Essa política concede as permissões necessárias para concluir essas ações somente por meio da API ou da AWS CLI da AWS. (Para usar essa política, substitua o texto em itálico na política de exemplo pelas informações de seu próprio recurso.)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "cloudfront:CreateDistribution", "cloudfront:Get*", "cloudfront:List*" ], "Resource": "*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "cloudfront:UpdateDistribution", "cloudfront:DeleteDistribution", "cloudfront:CreateInvalidation", ], "Resource": "arn:aws:cloudfront::123456789012:distribution/EDFDVBD6EXAMPLE" } ] }

Políticas baseadas em tags

Ao criar políticas do IAM, você pode definir permissões granulares concedendo acesso a recursos específicos. À medida que o número de recursos que você gerencia aumenta, essa tarefa se torna mais difícil. Atribuir etiquetas a recursos e usá-las em condições de declaração de política pode facilitar essa tarefa. Você concede acesso em massa a qualquer recurso utilizando determinada etiqueta. Depois, você a aplica repetidamente a recursos relevantes durante a criação ou posteriormente.

nota

O uso de tags em condições é uma forma de controlar o acesso a recursos e solicitações. Para obter informações sobre marcação no CloudFront, consulte Marcar distribuições do Amazon CloudFront.

As etiquetas podem ser anexadas ao recurso ou passadas na solicitação para serviços que comportem etiquetas. No CloudFront, os recursos podem ter tags, e algumas ações podem incluir tags. Ao criar uma política do IAM, você poderá usar chaves de condição de tag para controlar:

  • Quais usuários podem executar ações em uma distribuição, com base nas tags que ela já tem.

  • Quais tags podem ser transmitidas na solicitação de uma ação.

  • Se chaves de tags específicas podem ser usadas em uma solicitação.

Para obter a sintaxe e a semântica completas das chaves de condição de tag, consulte Controlar o acesso usando tags do IAM no Guia do usuário do IAM.

Por exemplo, a política de usuário gerenciada AWSCloudFrontFullAccess oferece aos usuários permissão irrestrita para executar qualquer ação do CloudFront em qualquer recurso. A política a seguir restringe esse poder e nega aos usuários não autorizados permissão para criar distribuições de produção do CloudFront.

Para implementar a restrição usando etiquetas, ela negará a ação CreateDistribution se a solicitação especificar uma etiqueta chamada stage com o valor gamma ou prod. Além disso, para impedir que esses usuários não autorizados interfiram na fase de ambiente de produção, a política não permite que ações de modificação de etiquetas incluam esses mesmos valores de etiqueta ou removam completamente a etiqueta stage. O administrador de um cliente deve anexar essa política do IAM a usuários do IAM não autorizados, além da política de usuário gerenciada.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudfront:CreateDistribution", "cloudfront:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/stage": [ "gamma", "prod" ] } } }, { "Effect": "Deny", "Action": [ "cloudfront:TagResource", "cloudfront:UntagResource" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": [ "stage" ] }, "StringEquals": { "aws:ResourceTag/stage": [ "gamma", "prod" ] } } } ] }

Especificação de elementos de política: recursos, ações, efeitos e entidades de segurança

O CloudFront inclui ações de API (consulte Referência da API do Amazon CloudFront) que você pode usar em cada recurso do CloudFront (consulte ARNs para recursos do CloudFront). Você pode conceder a um usuário ou usuário federado permissão para executar uma ou todas essas ações.

Estes são os elementos de política básicos:

  • Recurso: use um nome de recurso da Amazon (ARN) para identificar o recurso ao qual a política se aplica. Para obter mais informações, consulte ARNs para recursos do CloudFront.

  • Ação: você usa palavras-chave de ação para identificar operações de recursos que deseja permitir ou negar. Por exemplo, dependendo do Effect especificado, a permissão cloudfront:CreateDistribution consente ou nega as permissões para o usuário executar a ação CreateDistribution do CloudFront.

  • Efeito: você especifica o efeito (permitir ou negar) quando um usuário tenta executar a ação no recurso especificado. Se você não conceder acesso explícito a uma ação, o acesso será negado implicitamente. Você também pode negar explicitamente o acesso a um recurso, para ter certeza de que um usuário não consiga acessá-lo, mesmo que uma política diferente conceda acesso.

  • Entidade principal: em políticas baseadas em identidade (políticas do IAM), o usuário ao qual a política é anexada é a entidade principal implícita. Para as políticas baseadas em recursos, você especifica quais usuários, contas, serviços ou outras entidades deseja que recebam permissões (isso se aplica somente a políticas baseadas em recursos).

    O CloudFront não comporta políticas baseadas em recursos, mas aceita políticas em nível de recurso. Para obter mais informações sobre os tipos de política de permissões comportados pelo CloudFront, consulte Gerenciamento de acesso aos recursos.

Para obter mais informações sobre a sintaxe e as descrições da política do IAM, consulte Referência da política do AWS IAM no Guia do usuário do IAM.

Para obter uma de tabelas que mostra todas as operações da API do CloudFront e os recursos aos quais elas se aplicam, consulte Permissões da API do CloudFront: referência de ações, recursos e condições.

Especificar condições em uma política

Ao conceder permissões, você pode usar a linguagem da política do IAM para especificar quando uma política deve entrar em vigor. Por exemplo, é recomendável aplicar uma política somente após uma data específica. Para obter mais informações sobre como especificar condições em uma linguagem de política, consulte Condição no Guia do usuário do IAM.

Para expressar condições, você usa chaves de condição predefinidas. Não há chaves de condição específicas do CloudFront. No entanto, existem chaves de condição em toda a AWS que você pode usar conforme apropriado. Para obter uma lista completa de chaves de toda a AWS, consulte Chaves disponíveis para condições no Guia do usuário do IAM.