AWSSupport-ContainEC2Instance - AWS Systems Manager Referência do runbook de automação

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 da Amazon quando me deparo com uma EC2 instância potencialmente comprometida ou suspeita? A automação se ramifica de acordo com os valores que você especificar.

Como funciona?

Esse runbook de automação AWSSupport-ContainEC2Instance realiza a contenção de rede de uma EC2 instância da Amazon 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 tanto não criptografados quanto criptografados AMI backups 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 AMIs, e interagindo com grupos de Auto Scaling. Essas ações podem potencialmente levar ao aumento de privilégios ou impactar 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 à Amazon EC2 Instance de destino, 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 AMIs. 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 EC2 Instância Amazon 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:

{ "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 Amazon Resource Name (ARN) da função AWS AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation execute as 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 EC2 instância da Amazon ou Restore tentar restaurar a configuração original da EC2 instância da Amazon 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, um AMI da EC2 Instância da Amazon 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 um código criptografado AMI da EC2 instância de destino da Amazon. 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 da Amazon. EC2 Se nenhuma regra for fornecida, um grupo de segurança sem nenhuma regra de entrada será anexado à EC2 instância da Amazon, 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 da Amazon Amazon. EC2 Se nenhuma regra for fornecida, um grupo de segurança sem nenhuma regra de saída será anexado à EC2 instância da Amazon, 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 EC2 Amazon de destino. 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 EC2 Instância Amazon de destino não está encerrada (excluída).

    • GetAutoScalingInstanceInfo

      Obtém o ciclo de vida da EC2 instância Amazon e o nome do grupo se a EC2 instância de destino da Amazon fizer parte de um grupo de 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 EC2 Instância Amazon 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 da EC2 Amazon para o estado e ajustando Standby a capacidade do grupo Auto Scaling. MinSize

    • BackupInstanceSecurityGroups

      Obtém e armazena a configuração dos grupos de segurança da Amazon EC2 Instance 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 Amazon EC2 Instance de destino.

    • 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 EC2 Instância Amazon de destino é o Amazon EBS.

    • CreateImage

      Cria um AMI da EC2 Instância Amazon de destino.

    • RestoreInstanceConfiguration

      Restaura a configuração de destino da Amazon EC2 Instance 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 Amazon EC2 Instance 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 Amazon EC2 Instance de destino durante um cenário de falha no fluxo de trabalho de contenção.

    • FinalOutput

      Exibe 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 Amazon EC2 Instance 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 Amazon EC2 Instance de destino durante um cenário de falha no fluxo de trabalho de restauração.

Referências

Automação do Systems Manager