Como usar o registro do AWS CloudFormation - AWS CloudFormation

Como usar o registro do AWS CloudFormation

O registro do CloudFormation permite gerenciar extensões, públicas e privadas, como recursos, módulos e hooks que estão disponíveis para uso na sua Conta da AWS. No momento, é possível utilizar os seguintes tipos de extensões no registro da AWS: tipos de recursos, módulos e hooks. O registro facilita a descoberta e o provisionamento de extensões nos seus modelos do AWS CloudFormation da mesma maneira que você usa recursos fornecidos pela AWS.

Extensões públicas e privadas

Tipos de extensões são registrados como públicas ou privadas. Atualmente, o registro oferece os seguintes tipos de extensões:

  • Tipos de recursos: modelam e provisionam a lógica personalizada como um recurso utilizando pilhas no CloudFormation.

  • Módulos: empacotam configurações de recursos para inclusão entre modelos de pilhas, de maneira transparente, gerenciável e repetível.

  • Hooks: inspecionam proativamente a configuração dos seus recursos da AWS antes do provisionamento.

Tipos de extensões públicas

Extensões públicas são aquelas publicadas publicamente no registro para uso por todos os usuários do CloudFormation. Isso inclui extensões publicadas pela AWS e por editores de extensões de terceiros.

Existem dois tipos de extensões públicas:

  • Extensões públicas da AWS: extensões publicadas pela AWS são sempre públicas e estão ativadas por padrão. Dessa forma, você não precisa tomar nenhuma medida antes de utilizá-los em sua conta. Além disso, a AWS controla o versionamento da extensão, para que você esteja sempre utilizando a versão mais recente disponível.

  • Extensões públicas de terceiros: são extensões disponibilizadas para uso geral por editores diferentes da AWS.

Para obter mais informações, consulte Usar extensões públicas.

Tipos de extensões privadas

Extensões privadas são as extensões de terceiros que você ativou explicitamente para uso na sua Conta da AWS.

Existem dois tipos de extensões privadas:

  • Extensões privadas ativadas: são cópias locais de extensões de terceiros que você ativou para a sua conta e região. Quando você ativa uma extensão pública de terceiros, o CloudFormation cria uma cópia local dela no registro da sua conta.

  • Extensões privadas registradas: também é possível ativar extensões privadas que não estão listadas no registro público do CloudFormation. Estas podem ser extensões que você mesmo criou ou extensões que foram compartilhadas com você pela sua organização ou por terceiros. Para utilizar uma extensão privada na sua conta, primeiro é preciso registrá-la. O registro da extensão carrega uma cópia dela no registro do CloudFormation na sua conta e a ativa.

Para obter mais informações, consulte Usar extensões privadas.

Gerenciar extensões por meio do registro do CloudFormation

Use o registro do CloudFormation para gerenciar as extensões em sua conta, incluindo:

  • Visualizar as extensões disponíveis e ativadas.

  • Registrar extensões privadas.

  • Ativar extensões públicas.

Para visualizar extensões no console do CloudFormation

  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. No painel de navegação do CloudFormation, em Registry (Registro), selecione a categoria da extensão que você deseja visualizar:

    • Public extensions (Extensões públicas) exibe as extensões públicas disponíveis na sua conta.

      1. Escolha o tipo de extensão: Tipos de recursos ,Módulos ou Hooks.

      2. Escolha seu editor: AWS ou Third party (Terceiros).

      3. Use as opções em Filter (Filtro) para selecionar mais extensões a serem visualizadas.

    • Activated extensions (Extensões ativadas) exibe extensões públicas e privadas ativadas na sua conta.

      1. Escolha o tipo de extensão: Resource types (Tipos de recursos) ,Modules (Módulos) ou Hooks (Ganchos).

      2. Use o menu suspenso Filter (Filtro) para selecionar mais extensões a serem visualizadas:

        • AWS: lista extensões publicadas pela AWS. Extensões publicadas pela AWS são ativadas por padrão.

        • Third-party (Terceiros): lista todas as extensões públicas de editores diferentes da AWS que você ativou nesta conta.

        • Registered (Registradas): lista todas as extensões privadas que você ativou nesta conta.

    • Publisher (Editor): exibe todas as extensões públicas que você publicou utilizando essa conta. Para saber mais, consulte Publicar extensões, no Guia do usuário para desenvolvimento de extensões.

  3. Pesquise ou selecione o nome da extensão para ver seus detalhes.

Registrar tipos de recursos em AWS Config

Você pode especificar que o AWS Config rastreie automaticamente seus tipos de recursos privados e registre alterações nesses recursos como itens de configuração. Isso permite visualizar o histórico de configuração desses tipos de recursos privados, bem como gravar regras do Regras do AWS Config para verificar as práticas recomendadas de configuração. O AWS Config é necessário para a extensão de hooks.

Para que o AWS Config rastreie automaticamente seus tipos de recursos privados:

  • Gerencie os recursos por meio do CloudFormation. Isso inclui a execução de todas as operações de criação, atualização e exclusão de recursos por meio do CloudFormation.

    nota

    Se você usar uma função do IAM para executar suas operações de pilha, ela deverá ter permissão para chamar as seguintes ações do AWS Config:

  • Configure o AWS Config para registrar todos os tipos de recursos. Para mais informações, consulte Registrar configurações para recursos de terceiros no Guia do desenvolvedor do AWS Config.

    nota

    O AWS Config não oferece suporte ao registro de recursos privados que contém propriedades definidas como obrigatórias e somente gravação.

    Por design, as propriedades de recurso definidas como somente gravação não são retornadas no esquema usado para criar o item de configuração do AWS Config. Devido a isso, incluir uma propriedade definida como somente gravação e como necessária fará com que a criação do item de configuração falhe, uma vez que uma propriedade necessária não estará presente. Para visualizar o esquema que será usado para criar o item de configuração, você pode revisar a propriedade schema da ação DescribeType.

Para mais informações sobre itens de configuração, consulte Itens de configuração no Guia do desenvolvedor do AWS Config.

Impedir que propriedades confidenciais sejam registradas em um item de configuração

Seu tipo de recurso pode conter propriedades que você considere informações confidenciais, como senhas, segredos ou outros dados confidenciais, e que não queira registrar como parte do item de configuração. Para impedir que uma propriedade seja registrada no item de configuração, inclua essa propriedade na lista writeOnlyproperties no esquema de tipo de recurso. Propriedades de recurso listadas como writeOnlyproperties podem ser especificadas pelo usuário, mas não serão retornadas por uma solicitação read ou list.

Para mais informações, consulte Esquema do provedor de recursos no Guia do usuário da interface de linha de comando do CloudFormation.

Prevenção contra representante confuso

O problema de "confused deputy" é uma questão de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Na AWS, a personificação entre serviços pode resultar no problema do ‘confused deputy’. A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.

Recomendamos o uso das chaves de contexto de condição global aws:SourceArn e aws:SourceAccount em políticas de recursos para limitar as permissões que o AWS CloudFormation concede a outro serviço no recurso para a extensão. Se o valor aws:SourceArn não contiver o ID da conta, como um nome do recurso da Amazon (ARN) do bucket do Amazon S3, você deverá usar ambas as chaves de contexto de condição global para limitar as permissões. Se você utilizar ambas as chaves de contexto de condição global, e o valor aws:SourceArn contiver o ID da conta, o valor aws:SourceAccount e a conta no valor aws:SourceArn deverão utilizar o mesmo ID de conta quando utilizados na mesma declaração da política. Use aws:SourceArn se quiser apenas um recurso associado a acessibilidade de serviço. Use aws:SourceAccount se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

O valor de aws:SourceArn deve utilizar o ARN da extensão.

A maneira mais eficaz de se proteger contra o problema do substituto confuso é usar a chave de contexto de condição global aws:SourceArn com o ARN completo do recurso. Se você não souber o ARN completo da extensão ou estiver especificando várias extensões, use a chave de condição de contexto global aws:SourceArn com curingas (*) para as partes desconhecidas do ARN. Por exemplo, arn:aws:cloudformation:*:123456789012:*.

nota

Para serviços de registro, o CloudFormation faz chamadas para AWS Security Token Service (AWS STS) para assumir uma função na sua conta. Este perfil é configurado para ExecutionRoleArn na operação RegisterType e definido como LogRoleArn na operação LoggingConfig.

O exemplo a seguir mostra como é possível usar as chaves de contexto de condição globais aws:SourceArn e aws:SourceAccount no AWS CloudFormation para evitar o problema confused deputy.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "resources.cloudformation.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudformation:us-east-1:123456789012:type/resource/Organization-Service-Resource/*" } } } ] }