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á.
Solução de problemas de erros para o AWS CLI
Esta seção aborda erros comuns e os passos para a solução de problemas a serem seguidas para resolver o problema. Sugerimos seguir a Solução geral de problemas primeiro.
Sumário
- Solução geral de problemas para tentar primeiro
- Erros de comando não encontrado
- O comando “aws --version” retorna uma versão diferente da que você instalou
- O comando "aws --version" retorna uma versão após a desinstalação do AWS CLI
- O comando AWS CLI processado com um nome de parâmetro incompleto
- Erros de acesso negado
- Credenciais inválidas e erros de chave
- Assinatura não corresponde aos erros
- SSLerros de certificado
- Erros inválidos JSON
- Recursos adicionais
Solução geral de problemas para tentar primeiro
Se você receber um erro ou encontrar um problema com o AWS CLI, sugerimos as dicas gerais a seguir para ajudá-lo a solucionar o problema.
Verifique a formatação AWS CLI do seu comando
Se você receber um erro indicando que um comando não existe ou que ele não reconhece um parâmetro que a documentação indica estar disponível, é provável que o comando esteja formatado incorretamente. Sugerimos verificar o seguinte:
-
Verifique se há erros de ortografia e de formatação no comando.
-
Confirme se todos os escapes e citações apropriados para o seu terminal estão corretos em seu comando.
-
Gere um esqueleto de AWS CLI para confirmar a estrutura do comando.
-
Para obter informações sobre JSONvaloresJSON, consulte a solução de problemas adicional. Se você estiver tendo problemas com a JSON formatação do processamento do terminal, sugerimos ignorar as regras de cotação do terminal usando Blobs para passar JSON dados diretamente para o. AWS CLI
Para obter mais informações sobre como um comando específico deve ser estruturado, consulte o guia de de referência
Verifique o que Região da AWS seu AWS CLI comando está usando
nota
Você deve especificar um Região da AWS ao usar o AWS CLI, explicitamente ou definindo uma região padrão. Para obter uma lista de tudo o Regiões da AWS que você pode especificar, consulte AWS Regiões e endpoints no Referência geral da Amazon Web Services. Os Região da AWS designadores usados pelo AWS CLI são os mesmos nomes que você vê nos endpoints AWS Management Console URLs de serviço.
Erros ou resultados inesperados podem ocorrer se um AWS service (Serviço da AWS) não estiver disponível para o que você especificou Região da AWS ou se seus recursos estiverem localizados em um local diferente Região da AWS. Em ordem de precedência, o Região da AWS é definido das seguintes maneiras:
-
A opção da linha de comando
--region
. -
A variável de
AWS_REGION
ambiente SDK compatível. -
A variável de ambiente
AWS_DEFAULT_REGION
. -
A configuração regiondo perfil.
Confirme se você está usando o correto Região da AWS para seus recursos.
Confirme se você está executando uma versão recente da AWS CLI
Se você receber um erro indicando que um comando não existe ou que ele não reconhece um parâmetro que o guia de de referência
A forma como você atualiza sua versão do AWS CLI depende de como você a instalou originalmente, conforme descrito em Instalando ou atualizando para a versão mais recente do AWS CLI.
Se você tiver usado um dos instaladores empacotados, talvez precise remover a instalação existente antes de baixar e instalar a versão mais recente para seu sistema operacional.
Como usar a opção --debug
Quando ele AWS CLI relata um erro que você não entende imediatamente ou produz resultados inesperados, você pode obter mais detalhes sobre o erro executando o comando novamente com a --debug
opção. Com esta opção, a AWS CLI
gera detalhes sobre cada passo necessário para processar seu comando. Os detalhes na saída podem ajudar a determinar quando o erro ocorreu e fornecem dicas sobre o que o acionou o erro.
É possível enviar a saída para um arquivo de texto para análise posterior ou enviá-lo para AWS Support quando solicitado.
Quando você inclui a opção --debug
, os detalhes incluem:
-
Procurar credenciais
-
Analisar os parâmetros fornecidos
-
Construindo a solicitação enviada aos servidores AWS
-
O conteúdo da solicitação enviada para AWS
-
O conteúdo da resposta não formatada
-
A saída formatada
Veja a seguir um exemplo de um comando executado com e sem a opção --debug
.
$
aws iam list-groups --profile MyTestProfile
{
"Groups": [
{
"Path": "/",
"GroupName": "MyTestGroup",
"GroupId": "AGPA0123456789EXAMPLE",
"Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
"CreateDate": "2019-08-12T19:34:04Z"
}
]
}
$
aws iam list-groups --profile MyTestProfile --debug
2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205
2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug']
2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7fdf173161e0>
2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x7fdf17dec400>
2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7fdf17da9378>
2019-08-12 12:36:18,307 - MainThread - botocore.credentials - DEBUG - Skipping environment variable credential check because profile name was explicitly set.
2019-08-12 12:36:18,307 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x7fdf173ed9d8>
2019-08-12 12:36:18,308 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/service-2.json
2019-08-12 12:36:18,317 - MainThread - botocore.hooks - DEBUG - Event building-command-table.iam: calling handler <function add_waiters at 0x7fdf1731a840>
2019-08-12 12:36:18,320 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/waiters-2.json
2019-08-12 12:36:18,321 - MainThread - awscli.clidriver - DEBUG - OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>)])
2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_streaming_output_arg at 0x7fdf17316510>
2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_cli_input_json at 0x7fdf17da9d90>
2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function unify_paging_params at 0x7fdf17328048>
2019-08-12 12:36:18,326 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/paginators-1.json
2019-08-12 12:36:18,326 - MainThread - awscli.customizations.paginate - DEBUG - Modifying paging parameters for operation: ListGroups
2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8>
2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method OverrideRequiredArgsArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>>
2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>>
2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event operation-args-parsed.iam.list-groups: calling handler functools.partial(<function check_should_enable_pagination at 0x7fdf17328158>, ['marker', 'max-items'], {'max-items': <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>}, OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c58d0>), ('cli-input-json', <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>), ('starting-token', <awscli.customizations.paginate.PageArgument object at 0x7fdf171b0a20>), ('page-size', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c5828>), ('generate-cli-skeleton', <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>)]))
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.path-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.marker: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.max-items: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.cli-input-json: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.starting-token: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.page-size: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.generate-cli-skeleton: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978>
2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>>
2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>>
2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role
2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity
2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file
2019-08-12 12:36:18,329 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials
2019-08-12 12:36:18,330 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/endpoints.json
2019-08-12 12:36:18,334 - MainThread - botocore.hooks - DEBUG - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7fdf1898eb70>
2019-08-12 12:36:18,337 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.iam: calling handler <function add_generate_presigned_url at 0x7fdf18a028c8>
2019-08-12 12:36:18,337 - MainThread - botocore.regions - DEBUG - Using partition endpoint for iam, us-west-2: aws-global
2019-08-12 12:36:18,337 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None
2019-08-12 12:36:18,340 - MainThread - botocore.endpoint - DEBUG - Setting iam timeout as (60, 60)
2019-08-12 12:36:18,341 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/_retry.json
2019-08-12 12:36:18,341 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: iam
2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.iam.ListGroups: calling handler <function generate_idempotent_uuid at 0x7fdf189b10d0>
2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-call.iam.ListGroups: calling handler <function inject_api_version_header_if_needed at 0x7fdf189b2a60>
2019-08-12 12:36:18,343 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ListGroups) with params: {'url_path': '/', 'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205'}, 'body': {'Action': 'ListGroups', 'Version': '2010-05-08'}, 'url': 'https://iam.amazonaws.com/', 'context': {'client_region': 'aws-global', 'client_config': <botocore.config.Config object at 0x7fdf16e9a4a8>, 'has_streaming_input': False, 'auth_type': None}}
2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event request-created.iam.ListGroups: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7fdf16e9a470>>
2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event choose-signer.iam.ListGroups: calling handler <function set_operation_specific_signer at 0x7fdf18996f28>
2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth.
2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest:
POST
/
content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20190812T193618Z
content-type;host;x-amz-date
5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign:
AWS4-HMAC-SHA256
20190812T193618Z
20190812/us-east-1/iam/aws4_request
ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9
2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature:
d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7
2019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request: <AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/, headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE', 'Content-Length': '36'}>
2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None)
2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): iam.amazonaws.com:443
2019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://iam.amazonaws.com:443 "POST / HTTP/1.1" 200 570
2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml', 'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'}
2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body:
b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n <ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n <member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n <GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</ListGroupsResponse>\n'
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780>
2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed.
2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90>
{
"Groups": [
{
"Path": "/",
"GroupName": "MyTestGroup",
"GroupId": "AGPA123456789012EXAMPLE",
"Arn": "arn:aws:iam::123456789012:group/MyTestGroup",
"CreateDate": "2019-08-12T19:34:04Z"
}
]
}
Ative e revise os registros do histórico de AWS CLI comandos
Você pode ativar os registros do histórico de AWS CLI comandos usando a configuração cli_history
do arquivo. Depois de ativar essa configuração, ele AWS CLI registra o histórico dos aws
comandos.
Você pode listar seu histórico usando o comando aws history list
e usar os command_ids resultantes no comando aws history show
para obter detalhes. Para obter mais informações, consulte aws
history
Quando você inclui a opção --debug
, os detalhes incluem:
-
APIchamadas feitas para botocore
-
Códigos de status
-
HTTPrespostas
-
Cabeçalhos
-
Códigos de retorno
Você pode usar essas informações para confirmar que os dados dos parâmetros e as API chamadas estão se comportando da maneira esperada e, em seguida, deduzir em qual etapa do processo seu comando está falhando.
Confirme se o seu AWS CLI está configurado
Vários erros podem ocorrer se seus credentials
arquivos config
e ou seu IAM usuário ou função não estiverem configurados corretamente. Para obter mais informações sobre como resolver erros com credentials
arquivos config
e ou com seu IAM usuário ou funções, consulte Erros de acesso negado e. Credenciais inválidas e erros de chave
Erros de comando não encontrado
Esse erro significa que o sistema operacional não consegue encontrar o AWS CLI comando. A instalação pode estar incompleta ou exigir atualização.
- Possível causa: você está tentando usar um AWS CLI recurso mais recente do que a versão instalada ou tem uma formatação incorreta
-
Exemplo de texto de erro:
$
aws s3 copy
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help
aws: error: argument subcommand: Invalid choice, valid choices are:
ls | website cp | mv ....Vários erros podem ocorrer se o comando estiver formatado incorretamente ou se você estiver usando uma versão anterior ao lançamento do recurso. Para obter mais informações sobre a solução de erros em torno desses dois problemas, consulte Verifique a formatação AWS CLI do seu comando e Confirme se você está executando uma versão recente da AWS CLI.
- Causa possível: o terminal precisa ser reiniciado após a instalação
-
Exemplo de texto de erro:
$
aws --version
command not found: aws
Se o
aws
comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI, talvez seja necessário reiniciar o terminal para que ele reconheçaPATH
as atualizações. - Possível causa: AWS CLI Não foi totalmente instalado
-
Exemplo de texto de erro:
$
aws --version
command not found: aws
Se o
aws
comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI, talvez ele não tenha sido totalmente instalado. Tente reinstalar seguindo os passos da sua plataforma em Instalando ou atualizando para a versão mais recente do AWS CLI. - Possível causa: AWS CLI Não tem permissões (Linux)
-
Se o
aws
comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI no Linux, talvez ele não tenhaexecute
permissões para a pasta em que foi instalado. Execute o seguinte comando com oPATH
para sua AWS CLI instalação, para fornecerchmod
permissões para AWS CLI:$
sudo chmod -R 755
/usr/local/aws-cli/
- Causa possível: o
PATH
do sistema operacional não foi atualizado durante a instalação. -
Exemplo de texto de erro:
$
aws --version
command not found: aws
Talvez seja necessário adicionar o executável
aws
à variável de ambientePATH
do sistema operacional. Para adicionar o AWS CLI ao seuPATH
, use as instruções a seguir para o seu sistema operacional.
O comando “aws --version
” retorna uma versão diferente da que você instalou
Seu terminal pode estar retornando um valor diferente PATH
do AWS CLI que você espera.
- Causa possível: o terminal precisa ser reiniciado após a instalação
-
Se o comando
aws
mostrar a versão errada, talvez seja necessário reiniciar o terminal para que ele reconheça todas as atualizações dePATH
. Todos os terminais abertos precisam estar fechados, não apenas o terminal ativo. - Causa possível: o sistema precisa ser reiniciado após a instalação
-
Se o comando
aws
mostrar a versão errada e reiniciar o terminal não funcionar, talvez seja necessário reiniciar o sistema para que ele reconheça as atualizações dePATH
. - Possível causa: você tem várias versões do AWS CLI
-
Se você atualizou AWS CLI e usou um método de instalação diferente da instalação preexistente, isso pode fazer com que várias versões sejam instaladas. Por exemplo, se no Linux ou no macOS você usou
pip
para a instalação atual, mas tentou atualizar usando o arquivo de instalação.pkg
, isso poderá causar alguns conflitos, especialmente com oPATH
apontando para a versão antiga.Para resolver isso, desinstale todas as versões da AWS CLI e execute uma instalação limpa.
Depois de desinstalar todas as versões, siga as instruções apropriadas do seu sistema operacional para instalar a versão desejada da AWS CLI versão 1 ou da AWS CLI versão 2.
nota
Se isso acontecer depois de instalar a AWS CLI versão 2 com uma instalação preexistente da AWS CLI versão 1, siga as instruções de migração em Instruções de 1. Instalando AWS CLI a versão 2 a partir da AWS CLI versão 1
O comando "aws --version
" retorna uma versão após a desinstalação do AWS CLI
Isso geralmente ocorre quando ainda há um AWS CLI instalado em algum lugar do seu sistema.
- Causa possível: o terminal precisa ser reiniciado após a instalação
-
Se o comando
aws --version
mostrar a versão errada, talvez seja necessário reiniciar o terminal para que ele reconheça todas as atualizações. - Possível causa: você tem várias versões do AWS CLI no seu sistema ou não usou o mesmo método de desinstalação usado para instalar originalmente o AWS CLI
-
AWS CLI Talvez não seja desinstalado corretamente se você tiver desinstalado o AWS CLI usando um método diferente do usado para instalá-lo ou se tiver instalado várias versões. Por exemplo, se você usou
pip
para a instalação atual, deverá usarpip
para desinstalá-la. Para resolver isso, desinstale AWS CLI usando o mesmo método usado para instalá-lo.-
Siga as instruções apropriadas do seu sistema operacional e do método de instalação original para desinstalar a AWS CLI versão 1 e a AWS CLI versão 2.
-
Feche todos os terminais que você abriu.
-
Abra seu terminal preferido, insira o seguinte comando e confirme que nenhuma versão é retornada.
$
aws --version
command not found: aws
Se você ainda tiver uma versão listada na saída, é provável AWS CLI que ela tenha sido instalada usando um método diferente ou que haja várias versões. Se você não souber qual método instalou o AWS CLI, siga as instruções de cada método de desinstalação das AWS CLI versões 1 e AWS CLI 2 apropriadas ao seu sistema operacional até que nenhuma saída de versão seja recebida.
nota
Se você usou um gerenciador de pacotes para instalar a AWS CLI (
pip
,apt
,brew
etc.), use o mesmo gerenciador de pacotes para desinstalá-la. Siga as instruções fornecidas pelo gerenciador de pacotes sobre como desinstalar todas as versões de um pacote.
-
O comando AWS CLI processado com um nome de parâmetro incompleto
- Possível causa: você usou uma abreviação reconhecida do parâmetro AWS CLI
-
Como o AWS CLI é construído usando Python, ele AWS CLI usa a
argparse
biblioteca Python, incluindo o argumento.allow_abbrev
As abreviações dos parâmetros são reconhecidas pelo e processadas AWS CLI . O exemplo de comando a seguir altera o nome da CloudFormation pilha. O parâmetro
--change-set-n
é reconhecido como uma abreviatura de--change-set-name
e AWS CLI processa o comando.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-n
my-change-setQuando a abreviação pode ser de vários comandos, o parâmetro não será reconhecido como uma abreviação.
O exemplo de comando a seguir altera o nome da CloudFormation pilha. O parâmetro
--change-set-
não é reconhecido como uma abreviação, pois há vários parâmetros dos quais ele pode ser uma abreviação, como--change-set-name
e--change-set-type
. Portanto, o AWS CLI não processa o comando.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-
my-change-setAtenção
Não use abreviações de parâmetros propositadamente. Elas não são confiáveis e não são compatíveis com versões anteriores. Se algum novo parâmetro for adicionado a um comando que confunda as abreviações, os comandos serão interrompidos.
Além disso, se o parâmetro for um argumento de valor único, ele poderá causar um comportamento inesperado com os comandos. Se várias instâncias de um argumento de valor único forem transmitidas, somente a última instância será executada. No exemplo a seguir, o parâmetro
--filters
é um argumento de valor único. Os parâmetros--filters
e--filter
são especificados. O parâmetro--filter
é uma abreviação de--filters
. Isso faz com que duas instâncias de--filters
sejam aplicadas e somente o último argumento--filter
se aplica.$
aws ec2 describe-vpc-peering-connections \
--filters
Name=tag:TagName,Values=VpcPeeringConnection \--filter
Name=status-code,Values=activeConfirme se você está usando parâmetros válidos antes de executar um comando para evitar comportamentos inesperados.
Erros de acesso negado
- Possível causa: O arquivo do AWS CLI programa não tem permissão de “execução”
-
No Linux ou no macOS, verifique se o programa
aws
tem permissões de execução para o usuário que está chamando. Normalmente, as permissões são definidas como755
.Para adicionar permissão de execução para seu usuário, execute o comando a seguir, substituindo
~/.local/bin/aws
com o caminho para o programa no seu computador.$
chmod +x
~/.local/bin/aws
- Possível causa: sua IAM identidade não tem permissão para realizar a operação
-
Exemplo de texto de erro:
$
aws s3 ls
An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.
Quando você executa um AWS CLI comando, AWS as operações são executadas em seu nome, usando credenciais que o associam a uma IAM conta ou função. As políticas anexadas devem conceder a você permissão para chamar as API ações que correspondem aos comandos que você executa com AWS CLI o.
A maioria dos comandos chama uma única ação com um nome que corresponde ao nome do comando. No entanto, comandos personalizados, como
aws s3 sync
chamar váriosAPIs. Você pode ver qual APIs comando chama usando a--debug
opção.Se você tiver certeza de que o usuário ou a função tem as permissões adequadas atribuídas pela política, certifique-se de que seu AWS CLI comando esteja usando as credenciais que você espera. Consulte a próxima seção sobre credenciais para verificar se as credenciais que ele AWS CLI está usando são as que você espera.
Para obter informações sobre a atribuição de IAM permissões, consulte Visão geral do gerenciamento de acesso: permissões e políticas no Guia do IAM usuário.
Credenciais inválidas e erros de chave
Exemplo de texto de erro:
$
aws s3 ls
An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$
aws s3 ls
An error occurred (InvalidClientTokenId) when calling the ListBuckets operation: The security token included in the request is invalid.
- Possível causa: AWS CLI Está lendo credenciais incorretas ou de um local inesperado
-
AWS CLI Pode estar lendo as credenciais de um local diferente do esperado ou as informações do seu par de chaves estão incorretas. Execute a
aws configure list
para confirmar quais credenciais são usadas.O exemplo a seguir mostra como verificar as credenciais usadas para o perfil padrão.
$
aws configure list
Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************XYVA shared-credentials-file secret_key ****************ZAGY shared-credentials-file region us-west-2 config-file ~/.aws/config
O exemplo a seguir mostra como verificar as credenciais de um perfil nomeado.
$
aws configure list --profile saanvi
Name Value Type Location ---- ----- ---- -------- profile saanvi manual --profile access_key **************** shared-credentials-file secret_key **************** shared-credentials-file region us-west-2 config-file ~/.aws/config
Para confirmar os detalhes do par de chaves, verifique os arquivos
config
ecredentials
. Para obter mais informações sobre os arquivosconfig
ecredentials
, consulte Configurações e configurações do arquivo de credenciais no AWS CLI. Para obter mais informações sobre credenciais e autenticação, incluindo a precedência de credenciais, consulte Credenciais de autenticação e acesso para o AWS CLI. - Causa possível: o relógio do computador está fora de sincronia.
-
Se você estiver usando credenciais válidas, seu relógio poderá estar fora de sincronia. No Linux ou macOS, execute
date
para verificar a hora.$
date
Se o relógio do sistema não estiver correto dentro de alguns minutos, use
ntpd
para sincronizar.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
No Windows, use as opções de data e hora no Painel de controle para configurar o relógio do sistema.
Assinatura não corresponde aos erros
Exemplo de texto de erro:
$
aws s3 ls
An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.
Quando AWS CLI executa um comando, ele envia uma solicitação criptografada aos AWS servidores para realizar as operações de AWS serviço apropriadas. Suas credenciais (a chave de acesso e a chave secreta) estão envolvidas na criptografia e permitem AWS autenticar a pessoa que fez a solicitação. Há vários fatores que podem interferir na operação correta desse processo, conforme indicado a seguir.
- Possível causa: Seu relógio está fora de sincronia com os AWS servidores
-
Para ajudar a proteger contra ataques de reprodução
, a hora atual pode ser usada durante o processo de criptografia/descriptografia. Se a hora do cliente e a hora do servidor não coincidirem além do permitido, o processo poderá falhar e a solicitação será rejeitada. Isso também pode acontecer quando você executa um comando em uma máquina virtual cujo relógio está fora de sincronia com o relógio da máquina host. Uma causa possível é quando a máquina virtual hiberna e, depois de ativada, demora algum tempo para sincronizar o relógio com a máquina host. No Linux ou macOS, execute
date
para verificar a hora.$
date
Se o relógio do sistema não estiver correto dentro de alguns minutos, use
ntpd
para sincronizar.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
No Windows, use as opções de data e hora no Painel de controle para configurar o relógio do sistema.
- Possível causa: seu sistema operacional está manipulando incorretamente AWS as chaves que contêm determinados caracteres especiais
-
Se suas AWS chaves incluírem determinados caracteres especiais, como,
-
,, ou+
/
%
, algumas variantes do sistema operacional processarão a cadeia de caracteres de forma inadequada e farão com que ela seja interpretada incorretamente.Se você processar suas chaves usando outras ferramentas ou scripts, como ferramentas que criam o arquivo de credenciais em uma nova instância como parte de sua criação, essas ferramentas e scripts podem ter seu próprio tratamento de caracteres especiais, o que faz com que sejam transformados em algo que AWS não reconhece mais.
Sugerimos gerar novamente a chave secreta para obter uma que não inclua o caractere especial que está causando problemas.
SSLerros de certificado
- Possível causa: AWS CLI Não confia no certificado do seu proxy
-
Exemplo de texto de erro:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Ao usar um AWS CLI comando, você recebe uma mensagem
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
de erro. Isso é causado pela AWS CLI falta de confiança no certificado do proxy devido a fatores como o certificado do proxy ser autoassinado, com sua empresa definida como Autoridade de Certificação (CA). Isso impede que eles encontrem o certificado raiz AWS CLI da CA de sua empresa no registro local da CA.Para corrigir isso, instrua o arquivo de AWS CLI onde encontrar suas empresas usando a
ca_bundle
configuração do.pem
arquivo de configuração, a opção de linha de --ca-bundle comando ou a variável deAWS_CA_BUNDLE
ambiente. - Causa possível: sua configuração não está apontando para o local correto do certificado raiz da CA
-
Exemplo de texto de erro:
$
aws s3 ls
SSL validation failed for
regionname
[Errno 2] No such file or directoryIsso é causado devido ao local do arquivo do pacote da Autoridade de Certificação (CA) estar configurado incorretamente na AWS CLI. Para corrigir isso, confirme o local em que o arquivo
.pem
está localizado e atualize a configuração da AWS CLI usando o arquivo de configuraçãoca_bundle
, a opção de linha de comando da --ca-bundle ou a variável de ambienteAWS_CA_BUNDLE
. - Possível causa: sua configuração não está usando o correto Região da AWS
-
Exemplo de texto de erro:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Erros ou resultados inesperados podem ocorrer se um AWS service (Serviço da AWS) não estiver disponível para o que você especificou Região da AWS ou se seus recursos estiverem localizados em um local diferente Região da AWS. Para obter etapas sobre a solução de problemas, consulte Verifique o que Região da AWS seu AWS CLI comando está usando.
- Possível causa: sua TLS versão precisa ser atualizada
-
Exemplo de texto de erro:
$
aws s3 ls
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled
AWS service (Serviço da AWS) Está usando uma versão TLS que é incompatível com a TLS versão do seu dispositivo. Para resolver esse problema, atualize para uma TLS versão compatível. Para obter mais informações, consulte Aplicando uma versão mínima do TLS para o AWS CLI.
Erros inválidos JSON
Exemplo de texto de erro:
$
aws dynamodb update-table \ --provisioned-throughput
'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'
\ --table-name MyDDBTableError parsing parameter '--provisioned-throughput': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 25 (char 24) JSON received: {"ReadCapacityUnits":15,WriteCapacityUnits":10}
Ao usar um AWS CLI comando, você recebe uma mensagem de erro Invalid JSON
"”. Isso geralmente é um erro visto quando você insere um comando com um JSON formato esperado e AWS CLI não consegue lê-lo JSON corretamente.
- Possível causa: Você não inseriu um JSON valor válido AWS CLI para uso do
-
Confirme se você tem JSON uma entrada válida para seu comando. Sugerimos usar um JSON validador JSON se você estiver tendo problemas de formatação.
Para um JSON uso mais avançado na linha de comando, considere usar um JSON processador de linha de comando, por exemplo
jq
, para criar JSON cadeias de caracteres. Para obter mais informações sobrejq
, consulte o repositório jqem. GitHub - Possível causa: as regras de cotação do seu terminal estão impedindo o envio de documentos válidos JSON para o AWS CLI
-
Antes de AWS CLI receber qualquer coisa de um comando, seu terminal processa o comando usando suas próprias regras de citação e escape. Devido às regras de formatação de um terminal, parte do seu JSON conteúdo pode ser removida antes que o comando seja passado para o. AWS CLI Ao formular comandos, use as regras de aspas do seu terminal.
Para solucionar problemas, use o
echo
para ver como o shell está lidando com seus parâmetros:$
echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10}
ReadCapacityUnits:15 WriteCapacityUnits:10
$
echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}'
{"ReadCapacityUnits":15,"WriteCapacityUnits":10}
Modifique seu comando até que seu até que JSON seja válido seja retornado.
Para uma solução de problemas mais detalhada, use o parâmetro
--debug
para visualizar os logs de depuração, pois eles exibirão exatamente o que foi passado para a AWS CLI:$
aws dynamodb update-table \ --provisioned-throughput
'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'
\ --table-name MyDDBTable \ --debug2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.196-119.356.amzn2int.x86_64 botocore/1.18.6 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['dynamodb', 'update-table', '--provisioned-throughput', '{"ReadCapacityUnits":15,WriteCapacityUnits":10}', '--table-name', 'MyDDBTable', '--debug']
Use as regras de cotação do seu terminal para corrigir quaisquer problemas que sua JSON entrada tenha ao ser enviada para o. AWS CLI Para obter mais informações sobre regras de aspas, consulte Usando aspas e literais com cadeias de caracteres no AWS CLI.
nota
Se você estiver tendo problemas JSON para obter a validade do AWS CLI, recomendamos ignorar as regras de cotação de um terminal para entrada de JSON dados usando Blobs para passar seus JSON dados diretamente para o. AWS CLI Para obter mais informações sobre o Blobs, consulte Blob.
Recursos adicionais
Para obter ajuda adicional com seus AWS CLI problemas, visite a AWS CLI comunidade