Uso de conjuntos de alterações sensíveis a desvios
Os conjuntos de alterações sensíveis a desvios são conjuntos de alterações aprimorados do CloudFormation que permitem identificar e gerenciar o desvio de pilha de maneira segura. As pilhas se desviam da configuração de modelo esperada quando os recursos da pilha são alterados fora do CloudFormation, usando o Console de gerenciamento da AWS, a AWS CLI ou o SDK dos serviços subjacentes. Os conjuntos de alterações sensíveis a desvios comparam os modelos com o estado real dos recursos da pilha e alinham os recursos desviados com suas definições de modelo. Quando a definição do modelo de um recurso é atualizada para corresponder ao seu estado real, os conjuntos de alterações sensíveis a desvios redefinem o status de desvio do recurso sem modificar o recurso.
Os benefícios de usar conjuntos de alterações sensíveis ao desvio incluem:
-
Pré-visualizar substituições de desvio: detecte se uma implantação reverterá as alterações críticas fora de banda feitas durante a resposta a incidentes.
-
Reconciliação sistemática de desvios: alinhe com segurança os recursos desviados com as definições de modelos compatíveis, seja substituindo as propriedades desviadas pelos valores do modelo ou atualizando o modelo para corresponder ao estado real do recurso.
-
Recursos aprimorados de reversão: se uma implantação falhar, restaure os recursos para seu estado real de pré-implantação, não para o estado anterior do modelo.
-
Visibilidade completa: veja exatamente como sua implantação afetará as configurações reais dos recursos antes de fazer alterações.
Os conjuntos de alterações tradicionais fornecem uma comparação do seu novo modelo com o modelo anterior para uma pilha, mas não levam em conta o desvio da pilha. Os conjuntos de alterações sensíveis a desvios resolvem esse problema fornecendo uma comparação tripla entre:
-
Estado real: a configuração ativa de seus recursos. O CloudFormation lerá a configuração dos recursos em sua conta no momento da criação do conjunto de alterações por meio das APIs de serviço subjacentes.
-
Estado de implantação anterior: a configuração definida no modelo da sua última implantação do CloudFormation.
-
Estado desejado: a configuração definida em seu novo modelo.
Os conjuntos de alterações sensíveis ao desvio atualizarão o estado real de todos os recursos da pilha para corresponder ao estado desejado, mesmo que um recurso não tenha sido alterado explicitamente no modelo.
Considerações
-
Suporte ao tipo de recurso: os conjuntos de alterações sensíveis a desvios são compatíveis com a comparação do estado desejado com o estado real de centenas de tipos de recursos. Para tipos de recursos não compatíveis, os conjuntos de alterações sensíveis a desvios recorrem à comparação do estado de implantação anterior com o estado desejado. Para obter detalhes, consulte a seção Tipos de recursos compatíveis.
-
Propriedades somente para gravação: para propriedades que contêm dados sensíveis (senhas, segredos), os conjuntos de alterações sensíveis a desvios se comparam aos valores de implantação anteriores, em vez dos valores reais.
-
Propriedades gerenciadas pela AWS: os conjuntos de alterações sensíveis a desvios preservam as alterações fora de banda feitas pelos serviços da AWS nas propriedades gerenciadas, como a capacidade desejada de um grupo do Amazon EC2 Auto Scaling. Para obter detalhes, consulte a seção de propriedades gerenciadas pela AWS.
-
Chaves de tags externas: conjuntos de alterações sensíveis a desvios não removem nem modificam chaves de tags que não foram especificadas no modelo, evitando conflitos com sistemas de controle de acesso por atributo (ABAC).
-
Substituição de recursos desviados: conjuntos de alterações sensíveis a desvios não são compatíveis com a reconciliação de desvios para propriedades imutáveis.
-
Anexos de pilha cruzada: alguns tipos de recursos, como
AWS::IAM::Policy, podem influenciar o estado real de outros tipos de recursos, comoAWS::IAM::Role. Os conjuntos de alterações sensíveis a desvios lidam com a anexação de recursos em uma pilha. Se um recurso for modificado por meio da anexação de um recurso secundário de uma pilha diferente, os conjuntos de alterações sensíveis a desvios detectarão a modificação como desvio e poderão reverter o anexo. Os recursos anexáveis conhecidos incluemAWS::IAM::Policy,AWS::IAM::ManagedPolicy,AWS::EC2::SecurityGroupIngresseAWS::EC2::SecurityGroupEgress.
Propriedades gerenciadas pela AWS
Você pode configurar propriedades específicas de recursos para o gerenciamento ativo da AWS. Por exemplo, é possível permitir que o Amazon Relational Database Service (Amazon RDS) atualize automaticamente a versão secundária do mecanismo de uma tabela do Amazon RDS. Essas alterações podem aparecer como um desvio de pilha no CloudFormation. Os conjuntos de alterações sensíveis a desvios reconhecem que o desvio é esperado para propriedades gerenciadas pela AWS e deixam seu valor real inalterado se você não tiver modificado a propriedade em seu modelo. Os principais exemplos de propriedades gerenciadas pela AWS são:
-
Habilitar a propriedade
AutoMinorVersionUpgradede uma tabela do Amazon RDS para permitir atualizações automáticas da versão do mecanismo. -
Uso do recurso
AWS::ApplicationAutoScaling::ScalableTargetpara habilitar o ajuste de escala automático de propriedades como as unidades de capacidade de leitura/gravação de uma tabela do Amazon DynamoDB e a contagem desejada de um cluster do Amazon Elastic Container Service. -
Uso da
AWS::AutoScaling::ScalingPolicypara grupos do Amazon EC2 Auto Scaling.
Os conjuntos de alterações com sensíveis a desvios esclarecem as propriedades que foram identificadas como gerenciadas pela AWS. Para obter detalhes, consulte a seção da AWS CLI.
Uso de conjuntos de alterações sensíveis a desvios (console)
Você pode criar e gerenciar conjuntos de alterações sensíveis a desvios por meio do console do CloudFormation usando o mesmo fluxo de trabalho dos conjuntos de alterações tradicionais, com opções adicionais para modos de implantação.
Criação de conjuntos de alterações sensíveis a desvios
Para criar um conjunto de alterações sensíveis a desvios (console)
Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em https://console.aws.amazon.com/cloudformation
. -
Na página Pilhas, selecione a pilha que você deseja atualizar.
-
Escolha Ações de pilhas e depois Criar conjunto de alterações para a pilha atual.
-
Na página Criar conjunto de alterações, em Tipo de conjunto de alterações, escolha Conjunto de alterações sensível a desvios.
-
Escolha Criar conjunto de alterações.
-
Na página de detalhes do conjunto de alterações, revise a comparação tripla que mostra a implantação atual, anterior e o estado desejado para cada recurso afetado.
-
Se as alterações estiverem adequadas para você, escolha Executar conjunto de alterações.
Análise de conjuntos de alterações sensíveis a desvios
Ao visualizar um conjunto de alterações sensível a desvios no console, você verá informações aprimoradas em comparação com os conjuntos de alterações tradicionais:
-
Status de desvio da pilha: indica se a pilha foi desviada de sua última implantação.
-
Comparação de propriedades: mostra uma diferença JSON entre o estado real e o estado desejado de um recurso afetado.
-
Indicadores de desvio: marca claramente as propriedades do diferencial JSON que foram desviadas. Clique em Visualizar desvio para ver o valor da implantação anterior de uma propriedade.
-
Indicadores da fonte de valor: mostra se os valores anteriores de uma propriedade vêm do estado real ou do estado de implantação anterior.
Uso de conjuntos de alterações sensíveis a desvios (AWS CLI)
Você pode criar e gerenciar conjuntos de alterações sensíveis a desvios usando a AWS CLI, adicionando o parâmetro --deployment-mode REVERT_DRIFT ao comando create-change-set.
Criação de conjuntos de alterações sensíveis a desvios
Para criar um conjunto de alterações sensível a desvios
Use o comando create-change-set com o parâmetro --deployment-mode REVERT_DRIFT para criar um conjunto de alterações sensível ao desvio.
aws cloudformation create-change-set \ --stack-namemy-stack\ --change-set-namemy-drift-aware-changeset\ --template-bodyfile://updated-template.yaml\ --deployment-mode REVERT_DRIFT \ --capabilitiesCAPABILITY_IAM
Análise de conjuntos de alterações sensíveis a desvios
Para revisar os detalhes de um conjunto de alterações sensível a desvios
Use o comando describe-change-set para revisar os detalhes de um conjunto de alterações sensível a desvios:
aws cloudformation describe-change-set \ --change-set-namemy-drift-aware-changeset\ --stack-namemy-stack
A resposta inclui informações aprimoradas para conjuntos de alterações sensíveis a desvios:
-
StackDriftStatus: mostra se a pilha foi desviada (DRIFTED,IN_SYNC,NOT_CHECKEDouUNKNOWN). -
ResourceDriftStatus: mostra o status de desvio de cada recurso (DELETED,MODIFIED,IN_SYNCouNOT_CHECKED). -
BeforeValueFrom: indica se o valor anterior de uma propriedade vem deACTUAL_STATEouPREVIOUS_DEPLOYMENT_STATE. -
Drift: contém os detalhes do desvio de uma propriedade, incluindoPreviousValue,ActualValueeDriftDetectionTimestamp. -
ResourceDriftIgnoredProperties: contém as propriedades de um recurso para o qual o conjunto de alterações não reverterá o desvio e os motivos para ignorar o desvio.
Para obter mais informações, consulte DescribeChangeSet na Referência de APIs do AWS CloudFormation.
Execução de conjuntos de alterações sensíveis a desvios
Para executar um conjunto de alterações sensível a desvios
Depois de analisar o conjunto de alterações, use o comando execute-change-set para aplicar as alterações:
aws cloudformation execute-change-set \ --change-set-namemy-drift-aware-changeset\ --stack-namemy-stack
Se a implantação falhar, o CloudFormation reverterá os recursos para seu estado real de pré-implantação e preservará as alterações fora de banda feitas desde a última implantação.
Tipos de recursos compatíveis
Os conjuntos de alterações sensíveis são compatíveis com uma comparação tripla do estado real, do estado anterior da implantação e do estado desejado para todos os tipos de recursos compatíveis com a detecção de desvios, exceto os seguintes tipos de recursos:
-
AWS::SageMaker::MlflowTrackingServer -
AWS::Route53Resolver::FirewallRuleGroup -
AWS::MediaLive::Multiplexprogram -
AWS::VpcLattice::ResourceConfiguration -
AWS::S3::StorageLensGroup -
AWS::Bedrock::AgentAlias -
AWS::MSK::Cluster -
AWS::RDS::DBProxy -
AWS::Redshift::ClusterParameterGroup -
AWS::QBusiness::Index -
AWS::NetworkManager::CoreNetwork -
AWS::IAM::OIDCProvider -
AWS::Organizations::ResourcePolicy -
AWS::SNS::TopicInlinePolicy -
AWS::Route53::KeySigningKey -
AWS::DataZone::PolicyGrant -
AWS::Transfer::Certificate -
AWS::SageMaker::ImageVersion -
AWS::Neptune::DBParameterGroup -
AWS::ODB::CloudVmCluster -
AWS::RolesAnywhere::TrustAnchor -
AWS::Evidently::Launch -
AWS::Detective::Graph -
AWS::Maester::DocumentType -
AWS::SageMaker::ModelPackageGroup -
AWS::S3Express::BucketPolicy -
AWS::Panorama::PackageVersion -
AWS::S3Tables::TableBucketPolicy
Os conjuntos de alterações sensíveis a desvios recorrem a uma comparação do estado de implantação anterior e do estado desejado para recursos não compatíveis com a comparação tripla.