# AWS CloudShell: terminal gratuito e seguro direto no navegador

> Abra o AWS CloudShell, use AWS CLI e Git sem configurar credencial e entre na EC2 pelo Session Manager, sem chave PEM e sem SSH aberto.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: Segurança
- URL: https://pages.formacaoaws.com.br/blog/aws-cloudshell-terminal-seguro/
- Aula de origem: "Como ter um ambiente em shell script na nuvem, seguro e gratuito para interagir com a AWS" (https://www.youtube.com/watch?v=mxf0DgZeaW0)

Dá para operar a sua conta da AWS por linha de comando só com o navegador, sem gerar credencial e sem instalar nada. O AWS CloudShell abre um terminal com AWS CLI, Git, Python e Node dentro do console, e daí você ainda entra numa EC2 sem chave PEM.

## O que é o AWS CloudShell

O CloudShell é um terminal que a AWS oferece dentro do console, gratuito para quem tem uma conta, como eu disse na aula (em abril de 2023). Condições e limites mudam: confira na [página oficial do AWS CloudShell](https://aws.amazon.com/cloudshell/) antes de depender dele.

A vantagem que mais pesa: você não gera credencial nem configura o AWS CLI. Ele usa a credencial da conta em que você está logado no console.

Se você trabalha numa máquina Windows e não tem um ambiente de shell script para operar a AWS, esse ambiente resolve.

## Passo 1: abrir o CloudShell

Na barra superior do console da AWS, ao lado do sino de notificações, fica o ícone do CloudShell. Clique nele. O terminal carrega na parte de baixo da tela, na região em que você está, e já abre pronto para usar.

## Passo 2: entender onde ficam os seus arquivos

Esse é o ponto que mais pega, então entenda antes de guardar qualquer coisa ali:

- **Cada região tem o seu CloudShell.** Comparei o de Ohio com o da Virgínia e as pastas eram diferentes. Trabalhou numa região, os dados ficam nela.
- **São 1 GB de armazenamento por região**, o valor que citei na aula. Confira na [página oficial](https://aws.amazon.com/cloudshell/) se continua assim.
- **Os dados ficam por 120 dias de inatividade.** Enquanto você não passar 120 dias sem acessar aquela região, o que está lá continua lá.
- **Fechar não apaga.** Se eu fecho e abro de novo, ele carrega do ponto em que parou. Se eu saio da conta e volto, as pastas estão como deixei.

Dá para zerar o ambiente quando quiser. No botão **Actions** há o **Restart AWS CloudShell**, que uso quando ele trava ou quando quero começar limpo, e o **Delete AWS CloudShell home directory**, que apaga os dados guardados.

![O menu Actions do CloudShell: nova aba, divisão do terminal em linhas ou colunas, download e upload de arquivo, Restart e Delete home directory](https://pages.formacaoaws.com.br/blog/assets/posts/aws-cloudshell-terminal-seguro/menu-actions-cloudshell.webp)

> **Importante:** apagar o home directory remove tudo o que você guardou naquela região. Na aula fiz isso de propósito, para mostrar o ambiente do zero, e perdi a pasta de um projeto que estava ali.

## Passo 3: ver o que já vem instalado

Não instalei nada antes de rodar os comandos abaixo. Já vêm prontos:

- Git
- AWS CLI
- ECS CLI
- EB CLI (Elastic Beanstalk)
- Node
- Python

```bash
git --version
aws --version
ecs-cli --version
eb --version
node --version
python3 --version
```

Cada comando mostra a versão instalada. Na gravação, em abril de 2023, apareceram Git 2.39.2, AWS CLI 2.11.11, ECS CLI 1.21.0, EB CLI 3.20.5, Node 16.19.1 e Python 3.7.16. Hoje as versões podem ser outras: rode os comandos e veja as suas.

![Os comandos --version no CloudShell em abril de 2023: Git 2.39.2, AWS CLI 2.11.11, ECS CLI 1.21.0, EB CLI 3.20.5, Node 16.19.1 e Python 3.7.16](https://pages.formacaoaws.com.br/blog/assets/posts/aws-cloudshell-terminal-seguro/ferramentas-ja-instaladas.webp)

Nas preferências do terminal dá para aumentar a fonte, o que ajuda quando você grava ou compartilha a tela. E pelo menu **Actions** você abre uma aba nova, divide o terminal em linhas ou colunas, baixa e envia arquivo.

## Passo 4: usar a sua conta sem configurar nada

Com o terminal aberto, rode:

```bash
aws s3 ls
```

Ele listou os buckets da minha conta. Não configurei o AWS CLI, não gerei credencial e não criei chave para o meu usuário: ele pegou as mesmas permissões que eu tenho no console.

![O comando aws s3 ls no CloudShell listando os buckets da conta, sem nenhuma configuração prévia (parte final do nome dos três buckets elasticbeanstalk borrada)](https://pages.formacaoaws.com.br/blog/assets/posts/aws-cloudshell-terminal-seguro/aws-s3-ls-sem-credencial.webp)

Isso já é um ganho de segurança só por usar o CloudShell. Ali você faz o que o seu usuário faz no console, nem mais, nem menos. Eu estava numa conta root e por isso tinha acesso a tudo; na sua, o alcance depende das permissões do seu usuário.

Como o Git também está instalado, eu clonei o projeto que uso nos meus eventos:

```bash
git clone <url-do-repositório>
ls
```

Troque a URL pela do seu repositório. O `ls` mostrou os fontes do projeto (API, config, Dockerfile e outras pastas) dentro do CloudShell.

## Passo 5: entrar na EC2 pelo Session Manager

Para acessar uma EC2 por linha de comando, o caminho comum é abrir a máquina para a internet, o que não é seguro, ou gerar uma chave PEM, liberar o SSH e conectar com ela. A terceira forma é o Session Manager, e o CloudShell já tem o AWS CLI com as suas permissões para usá-lo.

Eu tinha deixado a instância preparada antes da aula: o agente configurado nela e as permissões na conta. Pegue o ID da instância no console (a minha era a `bia-local`) e rode:

```bash
aws ssm start-session --target <id-da-instancia>
```

A sessão abriu e eu estava dentro da EC2, sem chave PEM e sem abrir a máquina. Para sair e voltar ao CloudShell, `exit`. A configuração do agente e das permissões, passo a passo, está em [Conectar na EC2 pelo navegador](https://pages.formacaoaws.com.br/blog/conectar-na-ec2-pelo-navegador/).

## Passo 6: editar arquivos e instalar o que falta

No CloudShell o `nano` não estava instalado (na instância, estava). Rodei um `sudo yum update -y`, que não tinha nada para atualizar, e instalei o editor:

```bash
sudo yum install nano -y
```

Com ele instalado, abri um Dockerfile, tirei uma linha e salvei:

```bash
nano Dockerfile
```

Você pode instalar o que precisar no seu CloudShell. O que ficar na home continua ali na próxima abertura, na mesma região.

O caminho, resumido:

**Fluxo:** Console da AWS (você já está logado) → AWS CloudShell (ícone na barra superior) → AWS CLI (permissões do console) → Session Manager (entra na EC2 sem SSH aberto)

## Checklist

- Clique no ícone do CloudShell na barra superior do console.
- Rode `aws s3 ls` e confirme que ele já enxerga a sua conta, sem configurar credencial.
- Confira as versões de Git, AWS CLI, Python e Node com `--version`.
- Lembre que o armazenamento é de 1 GB por região e fica por 120 dias de inatividade (confira na página oficial se ainda vale).
- Use o **Restart AWS CloudShell** para zerar o ambiente quando ele travar.
- Para entrar numa EC2, deixe o agente e as permissões prontos e use `aws ssm start-session --target <id-da-instancia>`.
- Antes de apagar o home directory, salve o que importa.

O CloudShell tira de você o trabalho de configurar credencial e abrir porta para operar a AWS por terminal. Abra o terminal, digite `aws s3 ls` e veja a sua conta responder.
