Solução de problemas do AWS CloudShell - AWS CloudShell

Solução de problemas do AWS CloudShell

Ao usar o AWS CloudShell, você pode encontrar problemas, como ao iniciar o CloudShell ou realizar tarefas importantes usando a interface de linha de comando do shell. As informações abordadas neste capítulo incluem como solucionar alguns dos problemas comuns que você pode encontrar.

Para obter respostas a várias perguntas sobre o CloudShell, consulte as perguntas frequentes do AWS CloudShell. Também é possível pesquisar respostas e postar perguntas no Fórum de Discussão do AWS CloudShell. Ao entrar nesse fórum, pode ser que você precise fazer login na AWS. Você também pode entrar em contato conosco diretamente.

Solucionar de problemas de erros

Ao encontrar algum dos seguintes erros indexados, você pode usar as seguintes soluções para corrigi-los.

Acesso negado

Problema: ao tentar iniciar o CloudShell por meio do Console de gerenciamento da AWS, é exibida a mensagem Não é possível iniciar o ambiente. Para tentar novamente, atualize o navegador ou reinicie selecionando Ações, Reiniciar o AWS CloudShell ". Você tem acesso negado mesmo depois de ter as permissões necessárias do administrador do IAM e ter atualizado seu navegador ou reiniciado o CloudShell.

Solução: entre em contato com AWS Support.

(Voltar ao início)

Permissões insuficientes

Problema: ao tentar iniciar o CloudShell por meio do Console de gerenciamento da AWS, é exibida a mensagem Não é possível iniciar o ambiente. Você não tem as permissões necessárias. Peça ao administrador do IAM que conceda acesso ao AWS CloudShell". Você tem acesso negado e é notificado de que não tem as permissões necessárias.

Causa: a identidade do IAM que você está usando para acessar o AWS CloudShell não tem as permissões necessárias do IAM.

Solução: solicite que seu administrador do IAM forneça as permissões necessárias. Eles podem fazer isso adicionando uma política gerenciada AWS anexada (AWSCloudShellFullAccess) ou uma política em linha incorporada. Para obter mais informações, consulte Gerenciando o uso e o acesso ao AWS CloudShell com políticas do IAM.

(Voltar ao início)

Não é possível acessar a linha de comando do AWS CloudShell

Problema: depois de modificar um arquivo usado pelo ambiente computacional, você não pode acessar a linha de comando no AWS CloudShell.

Solução: se você perder o acesso após modificar incorretamente o .bashrc ou qualquer outro arquivo, poderá retornar o AWS CloudShell às configurações padrão excluindo seu diretório inicial.

(Voltar ao início)

Não é possível executar ping em endereços IP externos

Problema: ao executar um comando ping na linha de comando (por exemplo, ping amazon.com), você recebe a seguinte mensagem.

ping: socket: Operation not permitted

Causa: o utilitário ping usa o Internet Control Message Protocol (ICMP) para enviar pacotes de solicitações de eco para um host de destino. Ele espera que um eco responda do destino. Como o protocolo ICMP não está habilitado no AWS CloudShell, o utilitário ping não opera no ambiente computacional do shell.

Solução: uma vez que o ICMP não é compatível com o AWS CloudShell, você pode executar o comando a seguir para instalar o Netcat. O Netcat é um utilitário de rede de computadores para leitura e gravação em conexões de rede usando TCP ou UDP.

sudo yum install nc nc -zv www.amazon.com 443

(Voltar ao início)

Houve alguns problemas ao preparar seu terminal

Problema: ao tentar acessar o AWS CloudShell usando o navegador Microsoft Edge, não é possível iniciar uma sessão de shell e o navegador exibe uma mensagem de erro.

Causa: o AWS CloudShell não é compatível com versões anteriores do Microsoft Edge. Você pode acessar o AWS CloudShell usando as quatro versões principais mais recentes dos navegadores compatíveis.

Solução: instale uma versão atualizada do navegador Edge do site da Microsoft.

(Voltar ao início)

As teclas de seta não funcionam corretamente no PowerShell

Problema: em operação normal, você pode usar as teclas de seta para navegar pela interface da linha de comando e examinar seu histórico de comandos para trás e para frente. Mas, quando você pressiona as teclas de seta em determinadas versões do PowerShell no AWS CloudShell, as letras podem ser emitidas incorretamente.

Causa: a situação em que as teclas de seta produzem letras incorretamente é um problema conhecido nas versões do PowerShell 7.2.x em execução no Linux.

Solução: para remover as sequências de escape que modificam o comportamento das teclas de seta, edite o arquivo de perfil do PowerShell e defina a variável $PSStyle como PlainText.

  1. Na linha de comando do AWS CloudShell, digite o comando a seguir para abrir o arquivo do perfil.

    vim ~/.config/powershell/Microsoft.PowerShell_profile.ps1
    nota

    Se você já estiver no PowerShell, também poderá abrir o arquivo de perfil no editor com o comando a seguir.

    vim $PROFILE
  2. No editor, vá até o final do texto existente do arquivo, pressione i para entrar no modo de inserção e adicione a seguinte declaração.

    $PSStyle.OutputRendering = 'PlainText'
  3. Depois de fazer a edição, pressione Esc para entrar no modo de comando. Em seguida, insira o seguinte comando para salvar o arquivo e sair do editor.

    :wq
nota

Suas alterações entrarão em vigor na próxima vez que você iniciar o PowerShell.

(Voltar ao início)

Web Sockets não compatíveis causam uma falha ao iniciar sessões do CloudShell

Problema: ao tentar iniciar o AWS CloudShell, você recebe repetidamente a seguinte mensagem: Failed to open sessions : Timed out while opening the session.

Causa: o CloudShell depende do protocolo WebSocket, que permite a comunicação interativa bidirecional entre seu navegador da web e o AWS CloudShell. Se você estiver usando um navegador em uma rede privada, o acesso seguro à Internet provavelmente é facilitado por servidores proxy e firewalls. A comunicação WebSocket geralmente pode atravessar servidores proxy sem problemas. Mas, em alguns casos, os servidores proxy impedem que os WebSockets funcionem corretamente. Se esse problema ocorrer, o CloudShell não pode iniciar uma sessão de shell e a tentativa de conexão eventualmente expira.

Solução: o tempo limite de conexão pode ser causado por um problema diferente dos WebSockets não compatíveis. Se for esse o caso, primeiro atualize a janela do navegador em que a interface da linha de comando do CloudShell está localizada.

Se você ainda estiver recebendo erros de tempo limite após a atualização, consulte a documentação do seu servidor proxy. E certifique-se de que seu servidor proxy esteja configurado para permitir Web Sockets. Como alternativa, consulte o administrador do sistema da sua rede.

nota

Digamos que você queira definir permissões granulares para uma lista de URLs específicos. Você pode adicionar parte do URL que a sessão do AWS Systems Manager usa para abrir uma conexão WebSocket para enviar entradas e receber saídas. Seus comandos do AWS CloudShell são enviados para essa sessão do Systems Manager.

O formato desse StreamURL usado pelo Systems Manager é wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output).

A região representa o identificador de uma região para uma Região da AWS compatível com AWS Systems Manager. Por exemplo, us-east-2 é o identificador de região para a região Leste dos EUA (Ohio).

Como o ID da sessão é criado após o início bem-sucedido de uma sessão específica do Systems Manager, você só pode especificar wss://ssmmessages.region.amazonaws.com ao atualizar sua lista de permissões de URL. Para obter mais informações, consulte a operação StartSession na referência da API do AWS Systems Manager.

(Voltar ao início)

Não é possível importar o módulo AWSPowerShell.NetCore

Problema: ao importar o módulo AWSPowerShell.NetCore no PowerShell por Import-Module -Name AWSPowerShell.NetCore, você recebe a seguinte mensagem de erro:

Import-Module: o módulo especificado 'AWSPowerShell.NetCore' não foi carregado porque nenhum arquivo de módulo válido foi encontrado em nenhum diretório do módulo.

Causa: o módulo AWSPowerShell.NetCore é substituído pelos módulos AWS.Tools por serviço no AWS CloudShell.

Solução: qualquer instrução de importação explícita pode não ser mais necessária ou precisar ser alterada para o módulo AWS.Tools por serviço relacionado.

  • Na maioria dos casos, desde que nenhum tipo .Net seja usado, você não precisa de nenhuma instrução de importação explícita. Veja a seguir exemplos de instruções de importação.

    • Get-S3Bucket

    • (Get-EC2Instance).Instances

  • Se forem usados tipos .Net, importe o módulo de nível de serviço (AWS.Tools.<Service>). Veja a seguir um exemplo de sintaxe.

    Import-Module -Name AWS.Tools.EC2 $InstanceTag = [Amazon.EC2.Model.Tag]::new("Environment","Dev")
    Import-Module -Name AWS.Tools.S3 $LifecycleRule = [Amazon.S3.Model.LifecycleRule]::new()

Para obter mais informações, consulte o anúncio da versão 4 do Ferramentas da AWS para PowerShell.

(Voltar ao início)

O Docker não está funcionando ao usar o AWS CloudShell

Problema: o Docker não está funcionando corretamente durante o uso do AWS CloudShell. Você recebe o seguinte erro: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

Solução: tente reiniciar seu ambiente. Essa mensagem de erro pode ser exibida quando você executa o Docker no AWS CloudShell em uma região do GovCloud. Verifique se você está executando o Docker nas regiões da AWS compatíveis. Para obter uma lista das regiões nas quais o Docker está disponível, consulte Supported AWS Regions for AWS CloudShell.

O Docker ficou sem espaço em disco

Problema: você está recebendo a seguinte mensagem de erro: ERROR: failed to solve: failed to register layer: write [...]: no space left on device.

Causa: o Dockerfile está excedendo o espaço disponível em disco no AWS CloudShell. Isso pode ser causado por grandes imagens individuais ou por muitas imagens do Docker preexistentes.

Solução: execute df -h para encontrar o uso do disco. Execute sudo du -sh /folder/folder1 para avaliar o tamanho de determinadas pastas que você acha que podem ser grandes e considere excluir outros arquivos para liberar espaço. Uma opção seria considerar a remoção de imagens não utilizadas do Docker executando docker rmi. Você deve estar ciente de que o Docker tem espaço limitado no ambiente. Para obter mais informações sobre o Docker, consulte o guia de documentação do Docker.

O docker push está atingindo o tempo limite e continua tentando novamente

Problema: quando você executa o docker push, o tempo limite é atingido e continua tentando novamente sem sucesso.

Causa: isso pode resultar da falta de permissões, do envio para o repositório errado ou da falta de autenticação.

Solução: para tentar resolver esse problema, verifique se você está enviando para o repositório correto. Execute o docker login para autenticar corretamente. Verifique se você tem todas as permissões necessárias para enviar para um repositório do Amazon ECR.

Não é possível acessar recursos dentro da VPC a partir do meu ambiente de VPC no AWS CloudShell

Problema: não é possível acessar recursos dentro da VPC a partir do meu ambiente de VPC no AWS CloudShell.

Causa: seu ambiente de VPC no AWS CloudShell herda as configurações de rede da sua VPC.

Solução: para resolver esse problema, certifique-se de que sua VPC esteja configurada corretamente para acessar seus recursos. Para obter mais informações, consulte a documentação da VPC Conectar sua VPC a outras redes e a documentação do Analisador de Acesso à Rede Analisador de Acesso à Rede. Você pode encontrar o endereço IPv4 que o ambiente de VPC no AWS CloudShell está usando ao executar o comando `ip -a` dentro do seu ambiente no prompt da linha de comando ou na página do console da VPC.

O ENI usado pelo AWS CloudShell para meu ambiente de VPC não está limpo

Problema: não é possível limpar o ENI usado pelo AWS CloudShell para meu ambiente de VPC.

Causa: a permissão ec2:DeleteNetworkInterface não está habilitada para sua função.

Solução: para resolver esse problema, verifique se a permissão ec2:DeleteNetworkInterface está habilitada para sua função, conforme mostrado no seguinte exemplo de script:

{ "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } }, "Resource": "arn:aws:ec2:*:*:network-interface/*" }

O usuário com permissão CreateEnvironment somente para ambientes de VPC também tem acesso a ambientes públicos do AWS CloudShell

Problema: o usuário restrito com permissão CreateEnvironment somente para ambientes de VPC também pode acessar ambientes públicos do AWS CloudShell.

Causa: ao limitar as permissões CreateEnvironment para a criação somente de ambientes de VPC e se você já tiver criado um ambiente público, você manterá seu acesso ao ambiente público existente do CloudShell até que esse ambiente seja excluído usando a interface de usuário da web. Mas se você nunca usou o CloudShell antes, não terá acesso a ambientes públicos.

Solução: para restringir o acesso a ambientes públicos do AWS CloudShell, o administrador do IAM deve primeiro atualizar a política do IAM com a restrição e, em seguida, o usuário deve excluir manualmente o ambiente público existente usando a interface de usuário da web do AWS CloudShell. (AçõesExcluir ambiente do CloudShell).