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
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) Permissions
AWS 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:
-
Navegue até
AWSSupport-ContainEC2Instance
em Systems Manager em Documentos. -
Selecione Execute automation (Executar automação).
-
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 ouRestore
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 como
true
, 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 como
true
, 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 como
alias/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
quandoContain
estiver ou para restaurar a configuraçãoAction
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}$
-
-
Selecione Executar.
-
A automação é iniciada.
-
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 acessowrite
público a seus objetos. Um novo bucket do Amazon S3 é criado se oBackupS3BucketName
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.
-
-
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