Redefinir senhas e chaves SSH em instâncias do EC2 - AWS Systems Manager

Redefinir senhas e chaves SSH em instâncias do EC2

Você pode usar o runbook AWSSupport-ResetAccess para reativar automaticamente a geração de senhas do administrador local em instâncias do Amazon Elastic Compute Cloud Amazon EC2 para o Windows Server e para gerar uma nova chave SSH nas instâncias do EC2 do Linux. O runbook AWSSupport-ResetAccess foi projetado para realizar uma combinação de ações do AWS Systems Manager, ações do AWS CloudFormation e funções do AWS Lambda que automatizam as etapas normalmente necessárias para redefinir a senha de administrador local.

Você pode usar o Automation, um recurso do AWS Systems Manager, com o runbook AWSSupport-ResetAccess para resolver os seguintes problemas:

Windows

Você perdeu o par de chaves EC2: para resolver esse problema, você pode usar o runbook AWSSupport-ResetAccess para criar uma AMI ativada por senha de sua instância atual, inicie uma nova instância em uma AMI e selecione um par de chaves que você tenha.

Você perdeu a senha do administrador local: para resolver esse problema, você pode usar o runbook AWSSupport-ResetAccess para gerar uma nova senha que você pode descriptografar com o par de chaves EC2 atual.

Linux

Você perdeu seu par de chaves EC2 ou configurou o acesso SSH à instância com uma chave perdida: para resolver esse problema, você pode usar o runbook AWSSupport-ResetAccess para criar uma nova chave SSH para a instância atual, que permite se conectar à instância novamente.

nota

Se a instância do EC2 para Windows Server for configurada para o Systems Manager, você poderá também redefinir a senha de administrador local usando o EC2Rescue e AWS Systems Manager Run Command. Para obter mais informações, consulte Usar o EC2Rescue for Windows Server com o Run Command do Systems Manager no Guia do usuário do Amazon EC2.

Informações relacionadas

Conexão à sua instância do Linux via Windows usando o PuTTY no Guia do usuário do Amazon EC2

Como funciona

A solução de problemas em uma instância com o Automation e o runbook AWSSupport-ResetAccess funcionam da seguinte maneira:

  • Você especifica o ID da instância e executa o runbook.

  • O sistema cria uma VPC temporária e, em seguida, executa uma série de funções do Lambda para configurar a VPC.

  • O sistema identifica uma sub-rede para sua VPC temporária na mesma Zona de disponibilidade da sua instância original.

  • O sistema executa uma instância temporária auxiliar do , habilitada para o SSM.

  • O sistema interrompe sua instância original e cria um backup. Em seguida, atribui o volume raiz original à instância auxiliar.

  • O sistema usa o Run Command para executar o EC2Rescue na instância auxiliar. No Windows, o EC2Rescue permite a geração de senha para o administrador local usando o EC2Config ou EC2Launch no volume raiz original anexado. No Linux, o EC2Rescue gera e injeta uma nova chave SSH e salva a chave privada, criptografada em Parameter Store. Ao terminar, o EC2Rescue anexa o volume raiz de volta à instância original.

  • O sistema cria uma nova Amazon Machine Image (AMI) de sua instância, agora que a geração de senha está habilitada. Você pode usar essa AMI para criar uma nova instância do EC2 e associar um novo par de chaves, se necessário.

  • O sistema reinicia sua instância original e encerra a instância temporária. O sistema também encerra a VPC temporária e as funções Lambda criadas no início da automação.

  • Windows: a instância gera uma nova senha que você pode decodificar no console do Amazon EC2 usando o par de chaves atual designado para a instância.

    Linux: você pode se conectar à instância via SSH usando a chave SSH armazenada no Systems Manager Parameter Store, como /ec2rl/openssh/instance ID/key.

Antes de começar

Antes de executar a automação a seguir:

  • Copie o ID da instância na qual você deseja redefinir a senha de administrador. Você especificará esse ID no procedimento.

  • Opcionalmente, colete o ID de uma sub-rede na mesma zona de disponibilidade como sua instância inacessível. A instância EC2Rescue será criada nessa sub-rede. Se você não especificar uma sub-rede, o Automation criará uma nova VPC temporária em sua Conta da AWS. Verifique se sua Conta da AWS tem pelo menos uma VPC disponível. Por padrão, você pode criar cinco VPCs em uma Região. Se você já tiver criado cinco VPCs na Região, a automação falhará sem fazer alterações na sua instância. Para obter mais informações sobre as cotas da Amazon VPC, consulte VPC e sub-redes no Manual do usuário da Amazon VPC.

  • Opcionalmente, você pode criar e especificar uma função do AWS Identity and Access Management (IAM) para o Automation. Se você não especificar essa função, a automação será executada no contexto do usuário que executou a automação.

Conceder a AWSSupport-EC2Rescue permissões para realizar ações em suas instâncias

O EC2Rescue precisa de permissão para realizar uma série de ações nas suas instâncias durante a automação. Essas ações invocam os serviços do AWS Lambda, IAM e Amazon EC2 para tentar corrigir problemas com as instâncias de forma segura. Se você tiver permissões em nível de administrador na sua Conta da AWS e/ou VPC, poderá executar a automação sem configurar permissões, conforme descrito nesta seção. Se não tiver permissões em nível de Administrador, você ou um administrador deverá configurar permissões usando uma das seguintes opções.

Conceder permissões usando políticas do IAM

É possível anexar a política do IAM a seguir ao seu usuário, grupo ou perfil como uma política em linha, ou criar uma nova política gerenciada do IAM e anexá-la ao seu usuário, grupo ou perfil. Para obter mais informações sobre como adicionar uma política em linha ao seu usuário, grupo ou perfil, consulte Como trabalhar com políticas em linha. Para obter mais informações sobre como criar uma nova política gerenciada, consulte Como trabalhar com políticas gerenciadas.

nota

Se você criar uma nova política gerenciada do IAM, deverá também anexar a ela a política gerenciada AmazonSSMAutomationRole para que suas instâncias possam se comunicar com a API do Systems Manager.

Política do IAM paraAWSSupport-ResetAccess

Substitua account ID (ID da conta) por suas próprias informações.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }

Conceder permissões usando um modelo do AWS CloudFormation

O AWS CloudFormation automatiza o processo de criação de políticas e funções do IAM, usando um modelo pré-configurado. Use o procedimento a seguir para criar as funções e políticas do IAM necessárias para o Automation EC2Rescue, usando o AWS CloudFormation.

Para criar as funções e políticas do IAM necessárias para o EC2Rescue
  1. Faça download de AWSSupport-EC2RescueRole.zip e extraia o arquivo AWSSupport-EC2RescueRole.json para um diretório em sua máquina local.

  2. Se sua Conta da AWS estiver em uma partição especial, edite o modelo para alterar os valores do ARN para os valores da sua partição.

    Por exemplo, para as regiões da China, altere todos os casos de arn:aws para arn:aws-cn.

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

  4. Escolha Create stack (Criar pilha), With new resources (Com novos recursos (padrão)).

  5. Na página Create stack (Criar pilha), em Prerequisite - Prepare template (Pré-requisito – Preparar modelo), escolha Template is ready (O modelo está pronto).

  6. Em Specify template (Especificar modelo), escolha Upload a template file (Fazer upload de um arquivo de modelo).

  7. Escolha Choose file (Escolher arquivo), navegue até o arquivo AWSSupport-EC2RescueRole.json e selecione-o no diretório onde foi extraído.

  8. Escolha Próximo.

  9. Na página Specify stack details (Especificar detalhes da pilha), no campo Stack name (Nome da pilha), insira um nome para identificar essa pilha e escolha Next (Próximo).

  10. (Opcional) Na área Tags, aplique um ou mais pares de nome/valor de chave de tag a pilha.

    Tags são metadados opcionais que você atribui a um recurso. Tags permitem categorizar um recurso de diferentes formas, como por finalidade, proprietário ou ambiente. Por exemplo, talvez você queira marcar uma pilha para identificar o tipo de tarefas que ela executa, os tipos de destinos ou outros recursos envolvidos e o ambiente em que ela é executada.

  11. Escolha Next (Próximo).

  12. Na página Review (Análise), role para baixo e escolha a opção I acknowledge that AWS CloudFormation might create IAM resources (Entendo que o poderá criar recursos do IAM).

  13. O AWS CloudFormation mostrará o status CREATE_IN_PROGRESS (CRIAÇÃO_EM_ANDAMENTO) por alguns minutos. O status mudará para CREATE_COMPLETE depois que a pilha tiver sido criada. Também é possível escolher o ícone de atualização para verificar o status do processo de criação.

  14. Na lista de pilhas, escolha a opção ao lado da pilha que você acabou de criar e selecione a guia Outputs (Saídas).

  15. Copie o conteúdo em Value. Este é o ARN de AssumeRole. Você especificará esse ARN quando executar a automação.

Executar a Automação

O procedimento a seguir descreve como executar o runbook AWSSupport-ResetAccess usando o console do AWS Systems Manager.

Importante

A automação a seguir interrompe a instância. A interrupção da instância pode resultar em perda de dados em volumes de armazenamento de instâncias anexados (se presentes). A interrupção da instância também pode fazer com que o IP público seja alterado, caso nenhum IP elástico esteja associado. Para evitar essas alterações de configuração, use o Run Command para redefinir o acesso. Para obter mais informações, consulte Usar o EC2Rescue para Windows Server com o Run Command do Systems Manager no Guia do usuário do Amazon EC2.

Para executar a automação AWSSupport-ResetAccess
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação à esquerda, escolha Automation (Automação).

  3. Escolha Execute automation.

  4. Na seção Automation document (Documento de automação), escolha Owned by Amazon (De propriedade da Amazon) na lista.

  5. Na lista de runbooks, escolha o botão no cartão para AWSSupport-ResetAccess e escolha Next (Próximo).

  6. Na página Execute automation document (Executar documento de automação), escolha Simple execution (Execução simples).

  7. Na seção Document details (Detalhes do documento), verifique se Versão do documento (Document version) está definida como a versão padrão mais recente. Por exemplo, $DEFAULT ou 3 (default) (3 (padrão)).

  8. Na seção Input parameters, especifique os parâmetros a seguir:

    1. Em InstanceID, especifique o ID da instância inacessível.

    2. Em SubnetId, especifique uma sub-rede em uma VPC existente na mesma zona de disponibilidade da instância que você especificou. Por padrão, o Systems Manager cria uma nova VPC, mas você pode especificar uma sub-rede em uma VPC existente, se quiser.

      nota

      Se a opção para especificar um ID de sub-rede não estiver disponível, verifique se você está usando a versão padrão mais recente do runbook.

    3. Em EC2RescueInstanceType, especifique um tipo de instância para a instância EC2Rescue. O tipo de instância padrão é t2.medium.

    4. Em AssumeRole, se você criou funções para essa automação usando o procedimento do AWS CloudFormation descrito anteriormente neste tópico, especifique o ARN de AssumeRole que você anotou no console do AWS CloudFormation.

  9. (Opcional) Na área Tags aplique um ou mais pares de nome/valor de chave de tag para ajudar a identificar a automação, por exemplo, Key=Purpose,Value=ResetAccess.

  10. Clique em Executar.

  11. Para monitorar o progresso da automação, escolha a automação em execução e depois escolha a guia Steps (Etapas). Quando a automação for concluída, escolha a guia Descriptions (Descrições) e, em seguida, View output (Exibir resultados) para visualizar os resultados. Para exibir a saída de etapas individuais, selecione a guia Steps (Etapas) e selecione View Outputs (Visualizar saídas) ao lado de uma etapa.

O runbook cria uma AMI de backup e uma AMI ativada por senha como parte da automação. Todos os outros recursos criados pela automação são automaticamente excluídos, mas essas AMIs permanecem em sua conta. As AMIs são nomeadas usando as seguintes convenções:

  • AMI de backup: AWSSupport-EC2Rescue:InstanceID

  • AMI ativada por senha: AWSSupport-EC2Rescue: AMI ativada por senha de Instance ID

Você pode localizar essas AMIs procurando o ID de execução do Automation.

No Linux, a nova chave privada SSH para sua instância é salva, criptografada, Parameter Store. O nome do parâmetro é /ec2rl/openssh/Instance ID/key.