Pular para o conteúdo principal

Como usar a CLI do AWS: Um passo a passo guiado para iniciantes

Aprenda a instalar a CLI do AWS em seu sistema, configurá-la para funcionar com sua conta do AWS e executar comandos para interagir com vários serviços do AWS!
Actualizado 29 de jan. de 2025  · 30 min de leitura

A AWS é um provedor de serviços em nuvem que oferece uma ampla gama de serviços dimensionáveis e sob demanda, incluindo capacidade de computação, armazenamento, bancos de dados, aprendizado de máquina, rede, análise e muito mais, a partir de seus data centers em todo o mundo. Confira os cursos Introdução à AWS e Tecnologia e serviços de nuvem da AWS para saber mais!

Para interagir e configurar recursos no AWS, podemos usar o console de gerenciamento do AWS ou a CLI do AWS.

Neste tutorial, orientaremos você na instalação da CLI do AWS a partir do zero, configurando-a para se comunicar com sua conta do AWS e demonstrando como criar alguns recursos básicos usando a CLI.

O que é a CLI do AWS?

A CLI do AWS é uma ferramenta avançada que permite que os usuários interajam com os serviços do AWS diretamente da linha de comando do computador. Os comandos da CLI do AWS fornecem funcionalidade equivalente à execução de tarefas no Console de gerenciamento do AWS.

Por exemplo, para listar todos os grupos de segurança em uma região específica da AWS, você deve navegar até a seção "Grupos de segurança" no serviço EC2 por meio do console.

Visualize os grupos de segurança no console do AWS

Visualize os grupos de segurança no console do AWS.

Da mesma forma, você pode obter o mesmo resultado usando o comando aws ec2 describe-security-groups na CLI do AWS.

Comando CLI do AWS para descrever e obter informações dos grupos de segurança

Visualize os grupos de segurança por meio da CLI do AWS no terminal local.

Instalando a CLI do AWS

Você verá como instalar o AWS CLI no Windows, Mac e Linux. 

Há duas versões principais do AWS CLI, a versão 1 e a 2. Discutiremos apenas a versão 2, pois é a versão mais recente, com mais funcionalidades. Para obter as informações mais recentes sobre a instalação ou atualização para a versão mais recente da CLI do AWS, visite a documentação do AWS.

Instalação no Windows

Faça o download do instalador no site oficial da AWS. Abrao pacote do instalador do Windows "AWSCLIV2" e você verá a janela mostrada abaixo.

Assistente de configuração da CLI do AWS

Assistente de configuração da CLI do AWS.

Selecione "Next" e prossiga para aceitar o contrato de licença. 

Contrato de licença da AWS CLI

Contrato de licença da AWS CLI.

Confirme o local de instalação e prossiga com a instalação. A instalação em si não deve levar mais de 5 minutos.

Confirme o local de instalação do AWS CLI

Confirme o local de instalação.

Instalação da CLI do AWS em andamento

Instalação em andamento.

Instalação do AWS CLI concluída

Instalação concluída.

Para verificar se a instalação foi bem-sucedida, abra o terminal e execute o comando aws --version. O resultado deve ser semelhante ao que você vê abaixo.

Verificar a instalação da AWS CLI no Windows

Verifique a instalação da AWS CLI no Windows.

Instalando no macOS

Você pode instalar a CLI do AWS no MacOS por meio do Homebrew ou do instalador de pacotes. Abordarei os dois métodos de instalação.

Instalação do pacote

Faça o download do instalador .pkg no site oficial do AWS. Abra o arquivo AWSCLIV2.pkg e você verá a janela abaixo.

Instalação do pacote AWS CLI no MacOS

Instalação da CLI do AWS.

Aceite a licença, confirme o local de instalação e prossiga com a instalação.

Mensagem de instalação bem-sucedida da CLI do AWS

Mensagem de instalação bem-sucedida.

Para verificar se a instalação foi bem-sucedida, abra o terminal e execute o comando aws --version. O resultado deve ser semelhante ao que você vê abaixo.

Verificar a instalação do AWS CLI no MacOS

Verifique a instalação do AWS CLI no MacOS.

Homebrew

Certifique-se de que você tenha o Homebrew instalado localmente. Para verificar, execute brew --version. Caso contrário, você pode consultar a página oficial do Homebrew para obter instruções de instalação.

Em seguida, execute os seguintes comandos para instalar a CLI:

# With brew installed, update Homebrew's formulae and cask definitions
brew update

# Install AWS CLI
brew install awscli

# Verify the installation
aws --version

Captura de tela do terminal dos comandos brew

atualização e instalação do brew

Verifique a instalação da CLI do AWS via brew

Verifique a instalação da cerveja.

Instalação no Linux

Para demonstrar a instalação no Linux, iniciei um Amazon Linux EC2 com a AMI ami-0bd55ebedabddc3c0. Embora você tenha a versão 2 da AWS CLI instalada por padrão, ela não é da versão secundária mais recente. As etapas de atualização e instalação são semelhantes.

# Switch to superuser
sudo su -
# If you’re on Amazon Linux, to install the latest version of the AWS CLI, you must first uninstall the pre-installed yum version
yum remove awscli

# Download the AWS CLI zip file
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# Unzip the file
unzip awscliv2.zip

# Run the installer
./aws/install

# Verify AWS CLI 
aws --version

Faça o download e descompacte o instalador no Linux

Faça o download e descompacte o instalador.

Execute o instalador e verifique a instalação no Linux

Execute o instalador e verifique a instalação.

Configuração da CLI do AWS

Depois de instalar o AWS CLI, precisamos configurá-lo antes de usá-lo para interagir com nossos recursos do AWS. A configuração inclui a definição das credenciais do AWS e algumas configurações padrão opcionais.

Quando fazemos login no console do AWS, fazemos login como um usuário ou assumimos uma função. Da mesma forma, quando usamos a CLI do AWS para interagir com nossos recursos, devemos fazê-lo como um usuário ou assumir uma função.

Configuração das credenciais do AWS

Há duas maneiras de fazer login no console do AWS. A primeira é usar um usuário criado por meio do serviço de gerenciamento de identidade e acesso (IAM).

Interface de usuário para login de usuário IAM

Página de login do usuário IAM.

A segunda é usar um usuário criado por meio do serviço IAM Identity Center.

Interface de usuário para login de usuário do IAM Identity Center

Página de login do AWS Access Portal.

Para configurar a CLI do AWS, você precisa definir os endereços aws_access_key_id e aws_secret_access_key em seu local. Esse par de chaves identifica sua conta e concede acesso ao AWS. Dependendo do modo como você está fazendo login, a obtenção deles difere um pouco. 

Usuário IAM

Para usar a CLI do AWS como um usuário do IAM, navegue até o serviço IAM por meio do console do AWS, selecione um usuário existente ou crie um novo. Usarei um usuário existente.

Usuários no serviço IAM

Usuário IAM.

Selecione o usuário e navegue até a guia "Security Credentials" (Credenciais de segurança). Role a tela para baixo para ver as "Chaves de acesso". Para este tutorial, criarei outra chave de acesso. Selecione "Create access key" (Criar chave de acesso).

Guia Credenciais de segurança de um usuário IAM

Guia Credenciais de segurança de um usuário IAM.

Selecione "Command Line Interface (CLI)". 

Criação de uma chave de acesso para um usuário do IAM

Crie uma chave de acesso.

Confirme e crie.

Chave de acesso criada

Chave de acesso criada.

Faça o download do arquivo .csv para mantê-lo em segurança. Em seguida, execute o comando aws configure localmente e insira o valor para o acesso e a chave de acesso secreta. Estamos gravando esse conjunto de credenciais no perfil "padrão", pois não especificamos um perfil com o sinalizador --profile. Discutiremos os perfis em uma seção posterior.

Comando CLI "aws configure"

Comando de configuração do AWS.

Uma pasta oculta chamada ".aws" será criada em seu diretório inicial (~). 

Pasta ".aws" no diretório inicial

A pasta .aws.

Ele contém dois arquivos, config e credentials

Conteúdo da pasta .aws

Conteúdo da pasta .aws.

O arquivo config armazena a região padrão e a opção de saída que você inseriu acima. Já o arquivo credentials armazena os arquivos aws_access_key_id e aws_secret_access_key. Para visualizar seu conteúdo, você pode executar os comandos cat config e cat credentials.

Execute o comando aws sts get-caller-identity para validar se as credenciais funcionam e se a identidade IAM correta é retornada.

Comando da CLI do AWS para validar a credencial

Validar credenciais.

Usuário do centro de identidade IAM

Depois de fazer login, você será direcionado ao Portal de acesso da AWS para selecionar a conta e a função da AWS a serem assumidas ao fazer login no console. Selecione "Access keys" (Chaves de acesso) para a conta e a função que você deseja usar para a CLI do AWS.

Portal de acesso ao AWS

Portal de acesso ao AWS.

Será exibida uma janela idêntica à da captura de tela abaixo. Escolha a opção 2, copie e cole o texto fornecido em seu arquivo de credenciais do AWS.

Obter credenciais para um usuário por meio do AWS Access Portal

Credenciais do AWS Access Portal.

Observe que, além de aws_access_key_id e aws_secret_access_key, há um aws_session_token em comparação com as credenciais de um usuário IAM abordadas na seção anterior. Isso adiciona uma camada extra de segurança às credenciais do usuário criadas por meio do IAM Identity Center, pois o token de sessão expirará e o usuário terá que se autenticar novamente para atualizar o token.

Depois de colar o texto da opção 2 em seu arquivo de credenciais do AWS, você deve inserir o texto no arquivo de credenciais do AWS:

# Use the AWS profile that you have just added
export AWS_PROFILE=<<Account Number>_<Role Name>>

# Valid that the credentials work
aws sts get-caller-identity

Credenciais válidas do AWS Access Portal

Validar credenciais.

O token de sessão acabará expirando, e precisamos gerar um novo. 

Mensagem de erro devido ao token expirado

Token expirado.

Em vez de copiá-lo novamente do Access Portal, como fizemos acima, podemos executar o aws sso login em nosso local. Siga os comandos abaixo para definir as configurações de Single Sign-On (SSO) em seu local.

# Configure SSO to refresh your session token. The ~/.aws/sso folder will be created.
aws configure sso

Saída do comando "aws configure sso"

Comando AWS configure SSO.

Você será solicitado a fazer login.

Permitir acesso pelo AWS CLI

Conceder acesso à CLI do AWS.

Permissão concedida ao AWS CLI

Solicitação de CLI da AWS aprovada.

Quando o token de sessão expirar novamente, basta executar aws sso login.

Saída do comando "aws sso login"

Saída de login do AWS SSO.

Opções de configuração

Podemos personalizar várias configurações como opções padrão para atender às nossas preferências. Se você não especificar explicitamente, essas configurações padrão serão aplicadas ao comando AWS CLI.

Para atualizar ou adicionar valores de configuração no arquivo config, você pode executar o comando abaixo ou modificá-lo manualmente por meio do vim ou nano.

aws configure set <setting> <value>

região

Os recursos do AWS que residem em uma região exigirão que você especifique o endereço region ao executar os comandos da CLI do AWS. 

Se o sinalizador "--region <region name>" não for especificado no comando, será usada a região padrão indicada no arquivo de configuração. Se nenhuma região padrão for definida, você encontrará o seguinte erro.

Mensagem de erro quando nenhuma região padrão é especificada

Erro quando nenhuma região é especificada.

saída

A configuração output define o formato de saída retornado pelo comando AWS CLI. 

Por exemplo, o formato de saída padrão que configuramos acima é "JSON", e o comando aws sts get-caller-identity retornou a saída no formato JSON. Outras opções válidas são "table" (tabela) e "text" (texto). 

Esta é a aparência da saída da tabela. Adicionei o sinalizador --output table para substituir o valor de saída padrão "JSON".

Formato de saída da tabela

aws sts get-caller-identity --output table.

role_arn e source_profile

Se você não quiser usar o usuário do IAM diretamente e, em vez disso, quiser que ele assuma uma função, especifique a configuração role_arn e source_profile

aws configure set role_arn arn:aws:iam::<Account ID>:role/<Role name>

# Put “default” as the profile name if you do not know what to put
aws configure set source_profile <profile name>

Depois de especificá-los, verifique se a função de IAM é de fato assumida.

Validar credenciais para o usuário IAM que está assumindo uma função

Validar credenciais.

cli_pager

Por padrão, a CLI do AWS canaliza sua saída por meio de um pager como o less, que exige que você pressione q para sair. Podemos alterar esse comportamento desativando o pager para configurar a saída a ser exibida diretamente no terminal, executando:

aws configure set cli_pager ""

Saída com o cli_pager desativado

Saída com o cli_pager desativado.

cli_history

Para manter um registro dos comandos da CLI do AWS que foram executados, ative o cli_history executando:

aws configure set cli_history enabled

O histórico será mantido em um banco de dados SQLite localizado em ~/.aws/cli/history

# View your AWS CLI history
aws history list

# Show details of a specific command
aws history show <command-id>

Resumo da configuração

Resumo das opções de configuração padrão:

Chave de configuração

Descrição

região

Região padrão do AWS (por exemplo, us-east-1, ap-southeast-1).

saída

Formato de saída: json, texto ou tabela.

role_arn

ARN da função de IAM a ser assumida.

source_profile

Perfil a ser usado como fonte ao assumir uma função.

cli_pager

Pager de saída de comando (por exemplo, menos, ou definido como "" para desativar).

cli_history

Ativar ou desativar o arquivo de histórico da CLI (ativado ou desativado).

cli_timestamp_format

Personalize o formato do registro de data e hora (nenhum, iso8601, iso8601_ms).

Se você seguiu os exemplos acima, o arquivo ~/.aws/config deve ser assim.

Conteúdo do arquivo ~/.aws/config

Conteúdo do arquivo de configuração.

Entendendo os comandos da CLI do AWS

Todos os comandos da CLI do AWS têm um formato padrão:

Detalhamento visual de um comando da CLI do AWS

Formato dos comandos da CLI do AWS - imagem do autor.

A operação específica de cada serviço terá opções/bandas opcionais ou obrigatórias a serem adicionadas.

Comandos básicos

Nossa CLI do AWS agora pode acessar de forma programática nossa conta do AWS para interagir com os serviços. Vamos experimentar alguns comandos básicos em alguns serviços da AWS comumente usados!

EC2

Descrição

Comando

Descreve as instâncias especificadas ou todas as instâncias.

aws ec2 describe-instances [--instance-ids <value>]

Descreva os grupos de segurança especificados ou todos os seus grupos de segurança

aws ec2 describe-security-groups [--group-ids <value>]

Cria um instantâneo de um volume EBS e o armazena no Amazon S3

aws ec2 create-snapshot --volume-id <value>

Criar uma VPC

aws ec2 create-vpc [--cidr-block <value>]

Saída do comando AWS CLI que descreve todas as instâncias

Resultado da descrição de todas as instâncias.

Para obter mais informações, consulte a documentação oficial do EC2.

S3

Descrição

Comando

Listar todos os buckets do S3

aws s3 ls 

Listar objetos em um bucket S3

aws s3 ls s3://<nome-do-bucket> --recursive

Move um arquivo local ou objeto do S3 para outro local, localmente ou no S3

aws s3 mv <LocalPath> <S3Uri> ou <S3Uri> <LocalPath> ou <S3Uri> <S3Uri>

Exclui um objeto em um bucket S3

aws s3 rm <S3Uri>

Exemplos de comandos "aws s3"

Comandos S3.

Para obter mais informações, consulte a documentação oficial do S3.

Observe que, para o serviço AWS S3, além do comando aws s3 CLI discutido acima, há também o comando aws s3api CLI. Os comandos aws s3 são bastante genéricos, enquanto os comandos aws s3api são mais granulares e de nível inferior.

Para obter mais informações, consulte a documentação oficial do s3api.

Lambda

Descrição

Comando

Para listar todas as funções Lambda

aws lambda list-functions

Para obter informações sobre uma função Lambda

aws lambda get-function --function-name <function name>

Invoca uma função Lambda

aws lambda invoke --function-name <nome da função>

Saída do comando AWS CLI que obtém informações de uma função Lambda

Retorna informações sobre a função.

Para obter mais informações, consulte a documentação oficial do Lambda.

Exemplo: Usando a CLI do AWS para o gerenciamento do EC2

Dê uma olhada no blog AWS EC2 Tutorial For Beginners (Tutorial do AWS EC2 para iniciantes ) para se atualizar sobre os conceitos básicos do EC2! Isso ajudará você a entender melhor os comandos a seguir.

# To create an EC2 instance
aws ec2 run-instances \
    --image-id ami-0bd55ebedabddc3c0 \
    --count 1 \
    --instance-type t2.micro

Saída da CLI do AWS da criação de uma instância

Saída da criação de uma instância.

Execute aws ec2 describe-instances para visualizar os detalhes de todas as instâncias do EC2, conforme abordado nos comandos básicos.

Se você quiser executar o comando para consultar uma instância ou instâncias específicas, adicione o sinalizador --instance-ids com o ID da instância. E.g., aws ec2 describe-instances --instance-ids i-00836ea7575852f10.

Saída da CLI do AWS da descrição de uma instância

Resultado da descrição de uma instância.

# To stop the instance
aws ec2 stop-instances --instance-ids i-00836ea7575852f10

Saída da CLI do AWS para interromper uma instância

Saída da interrupção de uma instância.

# To start the instance
aws ec2 start-instances --instance-ids i-00836ea7575852f10

Saída da CLI do AWS para iniciar uma instância

Saída do início de uma instância.

# To terminate the instance
aws ec2 terminate-instances --instance-ids i-00836ea7575852f10

Saída da CLI do AWS do encerramento de uma instância

Saída do encerramento de uma instância.

Exemplo: Trabalhando com buckets S3

Aqui estão alguns comandos úteis para você executar operações comuns com os buckets do S3, que são básicos na AWS!

# To create an S3 bucket. “mb” is short for “make bucket”
aws s3 mb s3://<bucket name> --region <region name>

# To list out all buckets
aws s3 ls

# To copy an object from your local or S3 object to another location locally or in S3. In the screenshot below, I used aws s3 cp <LocalPath> <S3Uri>
aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>

# To delete an object from the S3 bucket
aws s3 rm <S3Uri>

# To sync the source directory to the destination. In the screenshot below, I used aws s3 sync <LocalPath> <S3Uri>
aws s3 sync <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>

# To list the objects in the bucket
aws s3 ls <S3Uri>

# To delete an S3 bucket, it has to be empty of objects and versioned objects before it can be deleted. “rb” is short for “remove bucket”
aws s3 rb s3://my-unique-bucket-name-gfht68

# The “aws s3 rb” command comes with the --force parameter to first remove all of the objects in the bucket and then remove the bucket itself.
aws s3 rb s3://mybucket --force

Exemplo de comandos "aws s3"

Saída dos comandos do AWS S3.

Recursos avançados da CLI da AWS

Agora que já praticamos alguns comandos básicos da CLI, podemos analisar alguns recursos mais avançados da interface e casos de uso.

Automatização de tarefas com a CLI do AWS

Os exemplos de CLI do AWS que abordamos até agora envolvem um único comando para obter informações ou executar uma ação no serviço. Vejamos exemplos de montagem de vários comandos da CLI em um script para automatizar tarefas.

Exemplo: Script automatizado de inicialização de instância EC2

Crie um arquivo launch_ec2.sh com o seguinte conteúdo. 

#!/bin/bash

# Set variables
INSTANCE_NAME="My_Demo_Instance"
AMI_ID="ami-0bd55ebedabddc3c0" # Replace with your preferred AMI ID
INSTANCE_TYPE="t2.micro"       # Replace with the desired instance type
REGION="ap-southeast-1"

# Launch the EC2 instance
INSTANCE_ID=$(aws ec2 run-instances \
  --image-id "$AMI_ID" \
  --instance-type "$INSTANCE_TYPE" \
  --region "$REGION" \
  --query "Instances[0].InstanceId" \
  --output text)

echo "Instance launched with ID: $INSTANCE_ID"

# Add a Name tag to the instance
aws ec2 create-tags \
  --resources "$INSTANCE_ID" \
  --tags Key=Name,Value="$INSTANCE_NAME" \
  --region "$REGION"

echo "Tag added: Name=$INSTANCE_NAME"

# Wait for the instance to reach a running state
aws ec2 wait instance-running --instance-ids "$INSTANCE_ID" --region "$REGION"
echo "Instance is now running."

Você pode personalizar o script para incluir mais parâmetros, como o nome da chave (--key-name), ID do grupo de segurança (--security-group-ids), ID da sub-rede (--subnet-id), etc.

# Grant the user permission to execute the shell script
chmod u+x ./launch_ec2.sh

# Run the script
./launch_ec2.sh

Execute o script launch_ec2.sh

Inicie o script EC2.

Exemplo: Parada automatizada de todas as instâncias EC2 em execução

Crie um arquivo stop_ec2.sh com o seguinte conteúdo:

#!/bin/bash

# Check if a region is provided as an argument
if [ -n "$1" ]; then
  REGION="$1"
else
  # Get the default region from AWS CLI configuration
  REGION=$(aws configure get region)

  if [ -z "$REGION" ]; then
    echo "No region provided, and no default region found in AWS CLI configuration."
    echo "Please provide a region as an argument: ./stop-all-ec2.sh <region>"
    exit 1
  fi
fi

echo "Using region: $REGION"

# Get a list of all running EC2 instance IDs
RUNNING_INSTANCES=$(aws ec2 describe-instances \
  --filters Name=instance-state-name,Values=running \
  --query "Reservations[*].Instances[*].InstanceId" \
  --output text \
  --region "$REGION")

if [ -z "$RUNNING_INSTANCES" ]; then
  echo "No running EC2 instances found in region $REGION."
else
  echo "Stopping the following EC2 instances in region $REGION:"
  echo "$RUNNING_INSTANCES"
  echo "Give it around 1 minute for the instances to be stopped."
  
  # Stop the instances
  aws ec2 stop-instances --instance-ids $RUNNING_INSTANCES --region "$REGION"
  
  # Wait for the instances to stop
  aws ec2 wait instance-stopped --instance-ids $RUNNING_INSTANCES --region "$REGION"
  
  echo "All instances have been stopped successfully."
fi
# Grant the user permission to execute the shell script
chmod u+x ./stop_all_ec2.sh

# Run the script with the default region
./stop_all_ec2.sh

# Run the script overwriting the default region
./stop_all_ec2.sh us-west-1

Execute o script stop_all_ec2.sh

Você pode parar o script EC2.

Usando a CLI do AWS com JSON e JQ

As saídas dos comandos da CLI do AWS contêm muitas informações. Em alguns casos, talvez não precisemos de todas as informações retornadas e desejemos apenas um subconjunto da saída. 

Por exemplo, na seção "EC2" em "Comandos básicos" acima, vimos que o comando aws ec2 describe-instances retornou uma saída JSON longa. Para analisar essa saída e obter apenas o que é necessário, podemos usar o sinalizador --query ou o comando jq.

Consulte os scripts de automação na seção "Automatização de tarefas com a CLI do AWS" acima para ver exemplos do sinalizador --query

Observe que o comando jq só funciona em uma saída JSON. Portanto, configure a saída padrão como "JSON" ou passe o sinalizador --output json para cada comando.

Verifique se o site jq está instalado:

Obter a versão do jq instalada

Verifique a versão do jq.

# Get a list of all EC2 instances and filter only the instance ID and state
aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId: .InstanceId, State: .State.Name}'

# Count the number of EC2 instances in the "running" state.
aws ec2 describe-instances --output json | jq '[.Reservations[].Instances[] | select(.State.Name == "running")] | length'

# Extract Lambda Function Names and their runtimes
aws lambda list-functions --output json | jq '.Functions[] | {FunctionName: .FunctionName, Runtime: .Runtime}'

Exemplo de comandos da CLI do AWS com jq

Comandos da CLI do AWS com jq.

Usando a CLI do AWS em um pipeline de CI/CD

Podemos utilizar a CLI do AWS na configuração do nosso pipeline para automatizar as interações com os serviços do AWS, como a implantação e a atualização dos nossos recursos do AWS sempre que o pipeline de CI/CD for executado. 

No exemplo abaixo, usarei o pipeline do GitLab para demonstrar a implementação de uma função Lambda.

# .gitlab-ci.yml file configuration
stages:
  - demo-cicd

datacamp_job:
  image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
  stage: demo-cicd
  id_tokens:
    GITLAB_OIDC_TOKEN:
      aud: https://gitlab.com
  variables:
    ROLE_ARN: "arn:aws:iam::717240872783:role/<Name of IAM Role that pipeline will use>"
    AWS_DEFAULT_REGION: "ap-southeast-1"
  script:
    - aws --version
    - >
      export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s"
      $(aws sts assume-role-with-web-identity
      --role-arn ${ROLE_ARN}
      --role-session-name "GitLabRunner-${CI_PROJECT_ID}-${CI_PIPELINE_ID}"
      --web-identity-token ${GITLAB_OIDC_TOKEN}
      --duration-seconds 3600
      --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]'
      --output text))

    - aws sts get-caller-identity
    - ls -l
    - aws lambda create-function --function-name <function name> --runtime python3.13 --role <ARN of IAM role that Lambda function will use> --handler index.lambda_handler --zip-file fileb://lambda.zip

    - unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN

Registros de trabalho do pipeline do Gitlab utilizando um comando da CLI do AWS

Registros de trabalho do pipeline do GitLab.

Você pode modificar a configuração do pipeline para passar os parâmetros junto com o comando da CLI do AWS como variáveis no trabalho do pipeline em vez de codificá-los, como fiz na captura de tela acima.

Dessa forma, sempre que quiser criar uma função Lambda, você poderá inserir e enviar as variáveis junto com a configuração do pipeline para o repositório Git.

Práticas recomendadas para usar a CLI do AWS

Como em todas as práticas recomendadas, conceda as permissões mínimas necessárias para executar a tarefa, independentemente de você usar um usuário ou uma função. 

Vamos examinar outras práticas recomendadas específicas da CLI do AWS!

Usando funções do AWS IAM para segurança

As funções do AWS IAM fornecem credenciais de segurança temporárias para o acesso aos recursos do AWS. Essas credenciais são rotacionadas automaticamente e têm escopo para as permissões de uma função específica, reduzindo os riscos associados às chaves de acesso de longo prazo.

A maneira recomendada de usar uma função é por meio da função criada no IAM Identity Center, conforme mostrado na seção "IAM Identity Center" em "Configuração de credenciais da AWS" acima. Essa também é a abordagem recomendada pela AWS.

Captura de tela da AWS sobre a abordagem recomendada para o acesso programático

Abordagem recomendada pela AWS. Fonte da imagem: AWS.

Quando o administrador da nuvem cria o usuário por meio do IAM Identity Center, ele deve atribuir um conjunto de permissões

Usuários no IAM Identity Center

Usuários no IAM Identity Center.

Para cada conjunto de permissões, o AWS criará uma função de IAM.

Conjuntos de permissões no IAM Identity Center

Conjuntos de permissões no IAM Identity Center.

Gerenciar vários perfis

Você provavelmente lidará com mais de uma conta do AWS em seu ambiente de trabalho. Usamos perfis para configurar vários conjuntos de credenciais nos arquivos ~/.aws/credentials e ~/.aws/config.

Na seção "Configuração das credenciais do AWS" acima, executamos o comando aws configure sem especificar o perfil por meio do sinalizador --profile ou da variável de ambiente AWS_PROFILE. Assim, as credenciais e as informações de configuração são adicionadas ao perfil padrão. Para adicionar um novo perfil, você pode executar o aws configure --profile para ter um conjunto separado de credenciais no novo perfil.

# Create a new profile called “dev”
aws configure --profile dev

# To run AWS CLI commands using the dev profile instead of the default profile, set the AWS_PROFILE environment variable to “dev”. Alternatively, add the “--profile dev” for every AWS CLI command.
export AWS_PROFILE=dev

# Validate that the IAM identity under the new profile is returned
aws sts get-caller-identity

Novas credenciais em um novo perfil

Novas credenciais em um novo perfil.

Mantenha sua CLI do AWS atualizada

É importante atualizar nossa CLI do AWS para garantir uma interação eficaz com nossos serviços do AWS e aproveitar os recursos e aprimoramentos mais recentes.

Se você instalou o AWS CLI usando o pacote do instalador para Windows e Mac, precisou fazer o download de um arquivo para o computador local e executá-lo. Para atualizá-lo, você seguirá as mesmas etapas: Faça o download e execute o pacote de instalação mais recente. 

Se você instalou o AWS CLI via brew no Mac, a atualização é tão simples quanto executar brew upgrade awscli. Já tenho a versão mais recente instalada aqui.

brew upgrade awscli

Saída do comando awscli do brew upgrade.

No Linux, as etapas são as mesmas da instalação. Consulte o trecho de código na seção "Instalação no Linux". Siga os comandos para fazer o download do arquivo zip, descompactar e executar o instalador.

Registro e solução de problemas

A CLI do AWS é uma ferramenta incrível, mas também podemos enfrentar desafios ao trabalhar com ela. Vamos analisar como você pode superá-los. 

Registro do histórico da CLI

Ocasionalmente, podemos nos esquecer de um comando e de seus parâmetros que executamos anteriormente ou querer visualizar a saída de um comando que foi executado. A ativação do cli_history pode resolver essaspreocupações . Para obter mais informações, consulte a seção "Opções de configuração" acima.

Erros de configuração da CLI

Quando você encontrar erros de configuração da CLI do AWS, a execução do comando aws configure ajudará a determinar se a CLI está lendo corretamente as informações das suas credenciais e do arquivo de configuração.

Erro de configuração da CLI do AWS

Erro "Não foi possível analisar o arquivo de configuração".

# View configuration for the existing profile
aws configure list

# Verify credentials
aws sts get-caller-identity

# Verify configuration values
aws configure get region
aws configure get role_arn

# Review Environment Variables. Variables like AWS_PROFILE, AWS_ACCESS_KEY_ID, and AWS_REGION can override configuration
env | grep AWS

Outros erros

Em raras ocasiões, podemos encontrar um erro desconhecido ao executar comandos da CLI do AWS. Para depurar o problema com a chamada de API ou reunir mais informações para entender o erro, talvez seja útil adicionar o sinalizador --debug ao comando.

# Add the “--debug” flag
aws ec2 describe-instances --debug

Comando CLI do AWS com o sinalizador de depuração

Comando CLI do AWS com o sinalizador de depuração.

As informações adicionais devem ajudar você a entender e solucionar o problema.

Conclusão

A CLI do AWS é uma ferramenta avançada que permite que você interaja com os serviços do AWS de forma eficiente, automatize tarefas de rotina e gerencie facilmente os recursos da nuvem. Neste tutorial, ensinei a você como instalar, configurar e usar a CLI do AWS para realizar operações essenciais em vários serviços comuns do AWS.

Quer você seja um iniciante na nuvem ou um profissional experiente de DevOps, dominar a CLI da AWS pode aumentar significativamente a produtividade. Desde a criação e o gerenciamento de recursos até a automação de implementações, as possibilidades são praticamente infinitas com a CLI do AWS em seu kit de ferramentas.

Reserve um tempo para experimentar os comandos, explorar recursos avançados de script no seu pipeline e integrar a CLI do AWS às suas tarefas diárias. Feliz computação em nuvem!

Recomendo que você confira a trilha de habilidades do AWS Cloud Practitioner no DataCamp para se tornar um especialista em AWS.

Perguntas frequentes

Por que devo usar o AWS CLI em vez do AWS Management Console?

A CLI do AWS permite que você interaja com os serviços do AWS diretamente do seu terminal, fornecendo recursos de automação e fluxos de trabalho mais rápidos, que não são tão fáceis de obter com o Console do AWS.

Preciso verificar a soma de verificação do arquivo depois de fazer o download do pacote do instalador do AWS?

Embora não seja obrigatório, verificar a soma de verificação do pacote do instalador é uma boa prática.

Como posso verificar se o AWS CLI já está instalado no meu local?

Abra seu terminal e execute "aws --version". Se você receber "aws-cli/x.x.x...", a CLI do AWS está instalada. No entanto, a atualização para a versão mais recente é uma prática recomendada.

O que devo fazer se encontrar erros de autenticação ou de permissões ao usar a CLI do AWS?

Esses erros ocorrem devido a credenciais incorretas ou permissões insuficientes. Verifique novamente suas chaves de acesso ao AWS, certifique-se de que estejam associadas ao usuário ou à função de IAM correta e verifique se suas políticas de IAM permitem as ações necessárias. Se você estiver usando uma função e o token de sessão tiver expirado, execute o comando "aws sso login". Consulte a seção "Usuário do IAM Identity Center" para obter etapas detalhadas.

Como posso usar o AWS CLI para gerenciar recursos em várias regiões?

Você pode especificar a região do AWS em seus comandos usando o sinalizador "--region" ou pode definir uma região padrão usando o comando "aws configure". Consulte a seção "Opções de configuração" para obter mais informações.


Kenny Ang's photo
Author
Kenny Ang
LinkedIn

Engenheiro experiente em infraestrutura de nuvem e DevOps, com experiência em Terraform, pipelines de CI/CD do GitLab e uma ampla gama de serviços da AWS, Kenny é especialista em projetar soluções de nuvem escaláveis, seguras e com custo otimizado. Ele se destaca na criação de infraestrutura reutilizável, automatizando fluxos de trabalho com Python e Bash e incorporando práticas recomendadas de segurança em pipelines de CI/CD. Com ampla experiência prática em Kubernetes e várias ferramentas de observabilidade, Kenny é especialista em gerenciar e orquestrar microsserviços e, ao mesmo tempo, garantir observabilidade e monitoramento de desempenho robustos. Reconhecido por sua liderança, orientação e compromisso com a inovação, Kenny fornece consistentemente soluções confiáveis e dimensionáveis para aplicativos modernos nativos da nuvem. Ele continua dedicado a permanecer na vanguarda das tendências do setor e das tecnologias emergentes, expandindo e aprofundando continuamente seu conjunto de habilidades.

Temas

Saiba mais sobre a AWS com estes cursos!

curso

AWS Cloud Technology and Services Concepts

3 hr
7K
Master AWS cloud technology with hands-on learning and practical applications in the AWS ecosystem.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

AWS Certified Cloud Practitioner: um guia completo

Saiba mais sobre a certificação e o exame AWS Certified Cloud Practitioner com nosso guia completo. Descubra dicas, recursos e estratégias para garantir que você tenha sucesso.
Srujana Maddula's photo

Srujana Maddula

27 min

blog

Certificações da AWS em 2024: Níveis, custos e como passar

Explore nosso guia completo sobre as certificações da AWS, incluindo qual é a melhor para você e como passar nos exames. Além disso, descubra os recursos do DataCamp para ajudar!
Adel Nehme's photo

Adel Nehme

20 min

tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS

O guia completo para armazenamento de arquivos no AWS com S3 e EFS.
Zoumana Keita 's photo

Zoumana Keita

16 min

tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

25 min

tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

20 min

Ver maisVer mais