View a markdown version of this page

AWSSupport-ContainEC2Instance - AWS Systems Manager Referência do Automation Runbook

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWSSupport-ContainEC2Instance

Descrição

O AWSSupport-ContainEC2Instance runbook fornece uma solução automatizada para o procedimento descrito no artigo Como faço para isolar a instância do Amazon EC2 ao me deparar com uma instância potencialmente comprometida ou suspeita? A automação se ramifica dependendo dos valores que você especificar.

Como funciona?

Este runbook de automação AWSSupport-ContainEC2Instance realiza a contenção de rede de uma instância do Amazon EC2 por meio de uma série de etapas coordenadas. Quando executado no Contain modo, ele primeiro valida os parâmetros de entrada e verifica se a instância não foi encerrada. Em seguida, ele faz backup da configuração atual do grupo de segurança em um bucket do Amazon S3 para restauração posterior. O runbook cria dois grupos de segurança: um grupo de segurança temporário de “acesso total” e um grupo de segurança final de “contenção”. Ele gradualmente faz a transição das interfaces de rede da instância de seus grupos de segurança originais para o grupo de segurança de acesso total e, finalmente, para o grupo de segurança de contenção. Se especificado, ele cria AMI backups não criptografados e criptografados da instância. Para instâncias em um grupo de Auto Scaling, ele processa as modificações necessárias do grupo de Auto Scaling e coloca a instância no estado de espera. Quando executado no Release modo, ele restaura a instância em sua configuração de rede original usando as configurações de backup do Amazon S3. O runbook oferece suporte a um DryRun parâmetro para visualizar ações sem fazer alterações reais e inclui mecanismos abrangentes de tratamento e geração de relatórios de erros em todos os fluxos de trabalho de contenção e liberação.

Importante
  • Esse runbook executa várias operações que exigem privilégios elevados, como modificar grupos de segurança, criar AMI s e interagir com grupos do Auto Scaling. Essas ações podem potencialmente levar ao aumento de privilégios ou afetar outras cargas de trabalho em sua conta. Você deve analisar as permissões concedidas à função especificada pelo AutomationAssumeRole parâmetro e garantir que elas sejam apropriadas para o caso de uso pretendido. Você pode consultar a AWS documentação a seguir para obter mais informações sobre as permissões do IAM: AWS Identity and Access Management (IAM) PermissionsAWS Systems Manager Automation Permissions.

  • Esse runbook executa ações mutativas que podem causar indisponibilidade ou interrupção em suas cargas de trabalho. Especificamente, ele modifica os grupos de segurança associados à instância de destino do Amazon EC2, o que pode afetar a conectividade da rede. Além disso, se a instância fizer parte de um grupo de Auto Scaling, o runbook poderá modificar a configuração do grupo, afetando potencialmente seu comportamento de escalabilidade.

  • Durante o processo de contenção, esse runbook cria recursos adicionais, como grupos de segurança e s. AMI Embora esses recursos estejam marcados para identificação, você deve estar ciente de sua criação e garantir a limpeza ou o gerenciamento adequados após a conclusão do processo de contenção.

  • Se o Action parâmetro estiver definido comoRelease, esse runbook tentará restaurar a configuração da instância do Amazon EC2 ao seu estado original. No entanto, existe o risco de que o processo de restauração falhe, deixando a instância em um estado inconsistente. O runbook fornece instruções para restauração manual em caso de falhas desse tipo, mas você deve estar preparado para lidar com possíveis problemas durante o processo de restauração.

É recomendável revisar o runbook minuciosamente, entender seus possíveis impactos e testá-lo em um ambiente que não seja de produção antes de executá-lo em seu ambiente de produção.

Executar esta automação (console)

Tipo de documento

Automação

Proprietário

Amazon

Plataformas

/

Permissões obrigatórias do IAM

O parâmetro AutomationAssumeRole requer as seguintes ações para usar o runbook com êxito.

  • escalonamento automático: CreateOrUpdateTags

  • escalonamento automático: DeleteTags

  • escalonamento automático: DescribeAutoScalingGroups

  • escalonamento automático: DescribeAutoScalingInstances

  • escalonamento automático: DescribeTags

  • escalonamento automático: EnterStandby

  • escalonamento automático: ExitStandby

  • escalonamento automático: UpdateAutoScalingGroup

  • ec2: AuthorizeSecurityGroupEgress

  • ec2: AuthorizeSecurityGroupIngress

  • ec2: CopyImage

  • ec2: CreateImage

  • ec2: CreateSecurityGroup

  • ec2: CreateSnapshot

  • ec2: CreateTags

  • ec2: DeleteSecurityGroup

  • ec2: DeleteTags

  • ec2: DescribeImages

  • ec2: DescribeInstances

  • ec2: DescribeSecurityGroups

  • ec2: DescribeSnapshots

  • ec2: DescribeTags

  • ec2: ModifyNetworkInterfaceAttribute

  • ec2: RevokeSecurityGroupEgress

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • s3: CreateBucket

  • s3: DeleteObjectTagging

  • s3: GetAccountPublicAccessBlock

  • s3: GetBucketAcl

  • s3: GetBucketLocation

  • s3: GetBucketOwnershipControls

  • s3: GetBucketPolicy

  • s3: GetBucketPolicyStatus

  • s3: GetBucketPublicAccessBlock

  • s3: GetObject

  • s3: ListBucket

  • s3: PutAccountPublicAccessBlock

  • s3: PutBucketPolicy

  • s3: PutBucketVersioning

  • s3: PutObject

  • s3: PutObjectTagging

Exemplo de política:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

Instruções

Siga estas etapas para configurar a automação:

  1. Navegue até AWSSupport-ContainEC2Instanceem Systems Manager em Documentos.

  2. Selecione Execute automation (Executar automação).

  3. Para os parâmetros de entrada, insira o seguinte:

    • AutomationAssumeRole (Opcional):

      • Descrição: (opcional) o nome do recurso da Amazon (ARN) do perfil do AWS AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation realize ações em seu nome. Se nenhuma função for especificada, o Systems Manager Automation usa as permissões do usuário que inicia esse runbook.

      • Tipo: AWS::IAM::Role::Arn

    • Ação (obrigatória):

      • Descrição: (Obrigatório) Selecione Contain para isolar a instância do Amazon EC2 Restore ou tentar restaurar a configuração original da instância do Amazon EC2 a partir de um backup anterior.

      • Tipo: string

      • Allowed-pattern: Contain|Restore

    • DryRun (Opcional):

      • Descrição: (Opcional) Quando definida comotrue, a automação não executará nenhum dos comandos; em vez disso, relatará o que teria tentado fazer, detalhando cada etapa. Valor padrão: true.

      • Tipo: booliano

      • Valores permitidos: true|false

    • Criar AMIBackup (opcional):

      • Descrição: (Opcional) Quando definido comotrue, uma instância AMI do Amazon EC2 será criada antes de realizar as ações de contenção.

      • Tipo: booliano

      • Valores permitidos: true|false

    • KmsKey (Opcional):

      • Descrição: (Opcional) O ID da AWS KMS chave que será usada para criar uma instância criptografada AMI do Amazon EC2 de destino. O padrão está definido comoalias/aws/ebs.

      • Tipo: string

      • Allowed-pattern: ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • Backups 3 BucketName (condicionais):

      • Descrição: bucket (condicional) do Amazon Amazon S3 para carregar a configuração Action quando Contain estiver ou para restaurar a configuração Action quando estiver. Release Nota: Se o bucket fornecido não existir na conta, a automação criará um bucket do Amazon S3 em seu nome.

      • Tipo: AWS::S3::Bucket::Name

    • TagIdentifier (Opcional):

      • Descrição: (Opcional) Uma tag no formato Key=BatchId,Value=78925 que será adicionada aos AWS recursos criados ou modificados por esse runbook durante o fluxo de trabalho de contenção. Essa tag pode ser usada para identificar e gerenciar recursos associados durante o processo de contenção. Durante o fluxo de trabalho de restauração, a tag especificada por esse parâmetro será removida dos recursos. Observação: as chaves e os valores das tags diferenciam maiúsculas de minúsculas.

      • Tipo: string

      • Allowed-pattern: ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • Backups 3 BucketAccess (condicionais):

      • Descrição: (Condicional) O ARN dos usuários ou funções do IAM que terão acesso ao bucket de backup do Amazon S3 após a execução das ações de contenção. Esse parâmetro é necessário quando Action éContain. OAutomationAssumeRole, ou, na sua ausência, o usuário sob cujo contexto a automação está sendo executada é automaticamente adicionado à lista.

      • Tipo: string

      • Allowed-pattern: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules (Opcional):

      • Descrição: (Opcional) Um mapa separado por vírgulas das regras de entrada do grupo de segurança com Cidr, IpProtocol, FromPort e ToPort no formato a ser aplicado [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] à instância do Amazon EC2. Se nenhuma regra for fornecida, um grupo de segurança sem nenhuma regra de entrada será anexado à instância do Amazon EC2, isolando-a efetivamente de qualquer tráfego de entrada.

      • Tipo: MapList

      • Allowed-pattern: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules (Opcional):

      • Descrição: (Opcional) Um mapa separado por vírgulas das regras de saída do grupo de segurança com Cidr, IpProtocol, FromPort e ToPort no formato a ser aplicado [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] à instância do Amazon Amazon EC2. Se nenhuma regra for fornecida, um grupo de segurança sem nenhuma regra de saída será anexado à instância do Amazon EC2, impedindo efetivamente todo o tráfego de saída.

      • Tipo: MapList

      • Allowed-pattern: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • BackupS3 KeyName (opcional):

      • Descrição: (Opcional) Se Action estiver definido comoRestore, isso especifica a chave do Amazon S3 que a automação usará para tentar restaurar a configuração da instância de destino do Amazon EC2. A chave Amazon S3 normalmente segue este formato:. {year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json A chave pode ser obtida da saída de uma execução anterior de automação de contenção.

      • Tipo: string

      • Allowed-pattern: ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. Selecione Executar.

  5. A automação é iniciada.

  6. O bucket realiza as seguintes etapas:

    • ValidateRequiredInputs

      Valida se todas as entradas necessárias foram fornecidas.

    • AssertInstanceIsNotTerminated

      Verifica se a instância do Amazon EC2 de destino não está encerrada (excluída).

    • GetAutoScalingInstanceInfo

      Obtém o ciclo de vida da instância do Amazon EC2 e o nome do grupo se a instância do Amazon EC2 de destino fizer parte de um grupo do Auto Scaling.

    • CheckBackupS3BucketName

      Verifica se o bucket do Amazon S3 de destino potencialmente read concede acesso write público a seus objetos. Um novo bucket do Amazon S3 é criado se o BackupS3BucketName bucket não existir.

    • BranchOnActionAndMode

      Ramifica a automação com base nos parâmetros de entrada Action DryRun e.

    • BranchOnAutoScalingGroupMembership

      Ramifica a automação com base no fato de a instância do Amazon EC2 de destino fazer parte do grupo Auto Scaling e em seu estado de ciclo de vida.

    • DescribeAutoScalingGroups

      Obtém e armazena a configuração de grupo associada do Amazon EC2 Auto Scaling.

    • ModifyAutoScalingGroup

      Modifica a configuração do grupo associado do Amazon EC2 Auto Scaling para as ações de contenção, definindo a instância do Amazon EC2 para o estado Standby e ajustando a capacidade do grupo Auto Scaling. MinSize

    • BackupInstanceSecurityGroups

      Obtém e armazena a configuração dos grupos de segurança de instâncias do Amazon EC2 de destino.

    • CreateAllAccessSecurityGroup

      Cria um grupo de segurança temporário que permite todo o tráfego de entrada que substitui os grupos de segurança da instância de destino do Amazon EC2.

    • CreateContainmentSecurityGroup

      Cria um grupo restritivo de segurança de contenção com as regras de entrada e saída especificadas e substitui o grupo temporário de acesso total por ele.

    • BranchOnCreateAMIBackup

      Ramifica a automação com base no parâmetro CreateAMIBackup de entrada.

    • AssertSourceInstanceRootVolumeIsEbs

      Verifica se o volume raiz da Instância Amazon EC2 de destino é o Amazon EBS.

    • CreateImage

      Cria uma AMI das instâncias do Amazon EC2 de destino.

    • RestoreInstanceConfiguration

      Restaura a configuração da Instância Amazon EC2 de destino a partir do backup.

    • ReportContain

      Produz detalhes de funcionamento a seco para as ações de contenção.

    • ReportRestore

      Produz detalhes de funcionamento a seco para as ações de restauração.

    • ReportRestoreFailure

      Fornece instruções para restaurar a configuração original da Instância Amazon EC2 de destino durante um cenário de falha no fluxo de trabalho de restauração.

    • ReportContainmentFailure

      Fornece instruções para restaurar a configuração original da Instância Amazon EC2 de destino durante um cenário de falha no fluxo de trabalho de contenção.

    • FinalOutput

      Produz os detalhes das ações de contenção.

  7. Após a conclusão da execução, revise a seção Saídas para obter os resultados detalhados da execução:

    • FinalOutput.Saída

      Exibe os detalhes das ações de contenção realizadas por esse runbook quando DryRun está definido como False.

    • RestoreInstanceConfiguration.Saída

      Exibe as ações de restauração executadas por esse runbook quando DryRun está definido como False.

    • ReportContain.Saída

      Exibe os detalhes das ações de contenção realizadas por esse runbook quando DryRun está definido como True.

    • ReportRestore.Saída

      Exibe os detalhes das ações de restauração executadas por esse runbook quando DryRun está definido como True.

    • ReportContainmentFailure.Saída

      Fornece instruções para restaurar a configuração original da Instância Amazon EC2 de destino durante um cenário de falha no fluxo de trabalho de contenção.

    • ReportRestoreFailure.Saída

      Fornece instruções para restaurar a configuração original da Instância Amazon EC2 de destino durante um cenário de falha no fluxo de trabalho de restauração.

Referências

Automação do Systems Manager