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

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

Cada recurso da AWS é de propriedade de uma conta da AWS, e as permissões para criar ou acessar um recurso são regidas por políticas de permissões.

nota

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

Ao conceder permissões, você decide 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 de 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 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.

Entender a propriedade de recursos

Uma conta da AWS tem os recursos criados na conta, independentemente de quem os criou. Mais especificamente, o proprietário do recurso é a conta da AWS da entidade principal (ou seja, a conta root, 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 ilustram como isso funciona:

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

  • Se você criar um usuário do IAM em sua conta da AWS e conceder permissões para esse usuário 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 na sua conta da AWS com permissões para criar uma distribuição, qualquer um capaz de assumir a respectiva função poderá criar uma distribuição. Sua conta da AWS, à qual a função pertence, é a proprietária da distribuição.

Gerenciar o acesso aos recursos

Uma política de permissões especifica quem tem acesso a quê. Esta seção explica as opções para a criação de 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 são conhecidas como políticas baseadas em identidade (políticas do IAM) e as políticas associadas a um recurso são conhecidas como políticas baseadas em recurso. O CloudFront não é compatível com as políticas baseadas em recursos, mas é compatível com as políticas em nível de recurso. Para obter mais informações sobre os tipos de política de permissões compatíveis com o CloudFront, consulte Gerenciar o acesso aos recursos.

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

Você pode anexar as 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 na 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 para esse usuário 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, você pode querer conceder um nível de acesso específico a um recurso especificado por você, por exemplo, acesso somente a ações específicas em tal recurso. Uma das formas como os serviços da AWS implementam isso é permitir 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 permite a mesma flexibilidade, mas usa um método diferente. Em vez de anexar uma política a um recurso, especifique o recurso em uma política.

Por exemplo, a seguinte política 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 pelo ARN da distribuição. Essa política concede as permissões necessárias para concluir essas ações somente a partir da AWS ou API da AWS CLI. (Para usar essa política, substitua o texto em itálico na política de exemplo pelas informações do 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 cresce, essa tarefa se torna mais difícil. Atribuir tags a recursos e usar tags em condições de declaração de política pode facilitar essa tarefa. Você concede acesso em massa a qualquer recurso com uma determinada tag. Depois, você aplica essa tag 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 a marcação no CloudFront, consulte Marcar distribuições do Amazon CloudFront.

As tags podem ser anexadas ao recurso ou passadas na solicitação para serviços que ofereçam suporte a tags. 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 tags, ela negará a ação CreateDistribution se a solicitação especificar uma tag chamada stage com um dos valores gamma ou prod. Além disso, a política impede que esses usuários não autorizados interfiram nas fase de ambientes de produção, impedindo que ações de modificação de tags incluam esses mesmos valores de tag ou removam completamente a tag 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" ] } } } ] }

Especificar 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 você deseja permitir ou negar. Por exemplo, dependendo do Effect especificado, a permissão cloudfront:CreateDistribution permite 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 explicitamente acesso a uma ação, o acesso estará implicitamente negado. Você também pode negar explicitamente o acesso a um recurso, o que pode fazer para ter a certeza de que um usuário não consiga acessá-lo, mesmo que uma política diferente conceda acesso.

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

    O CloudFront não é compatível com as políticas baseadas em recursos, mas é compatível com as políticas em nível de recurso. Para obter mais informações sobre os tipos de política de permissões compatíveis com o CloudFront, consulte Gerenciar o 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, convém que uma política só seja aplicada 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.