Fornecimento de credenciais com um processo externo no AWS CLI - AWS Command Line Interface

Esta documentação é para a AWS CLI única versão 1. Para obter a documentação relacionada à versão 2 do AWS CLI, consulte o Guia do usuário da versão 2.

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á.

Fornecimento de credenciais com um processo externo no AWS CLI

Atenção

Este tópico discute as credenciais de fornecimento de um processo externo. Isso poderá ser um risco de segurança se o comando para gerar as credenciais se tornar acessível por processos ou usuários não aprovados. Recomendamos que você use as alternativas seguras e suportadas fornecidas pelo AWS CLI e AWS para reduzir o risco de comprometer suas credenciais. Certifique-se de proteger o arquivo config e todos os arquivos e ferramentas com suporte para impedir a divulgação.

Certifique-se de que sua ferramenta de credencial personalizada não grave nenhuma informação secreta, StdErr pois ela AWS CLI pode capturar SDKs e registrar essas informações, potencialmente expondo-as a usuários não autorizados.

Se você tiver um método para gerar ou pesquisar credenciais que não seja diretamente suportado pelo AWS CLI, você pode configurar o AWS CLI para usá-lo definindo a credential_process configuração no config arquivo.

Por exemplo, você pode incluir uma entrada semelhante à seguinte no arquivo config.

[profile developer] credential_process = /opt/bin/awscreds-custom --username helen
Sintaxe

Para criar essa string de uma forma compatível com qualquer sistema operacional, siga estas regras:

  • Se o caminho ou o nome do arquivo contiver um espaço, coloque o caminho completo e o nome do arquivo entre aspas duplas (“ ”). O caminho e o nome do arquivo podem ter somente os caracteres: A–Z a–z 0–9 - _ . espaço

  • Se um nome de parâmetro ou um valor de parâmetro tiver um espaço, coloque esse elemento entre aspas duplas (“ ”). Coloque somente o nome ou o valor entre aspas, não o par.

  • Não inclua variáveis de ambiente nas strings. Por exemplo, não inclua $HOME ou %USERPROFILE%.

  • Não especifique a pasta base como ~. É necessário especificar o caminho completo.

Exemplo para Windows

credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"

Exemplo para Linux ou macOS

credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

Saída esperada do programa de credenciais

O AWS CLI executa o comando conforme especificado no perfil e, em seguida, lê os dados deSTDOUT. O comando especificado deve gerar uma JSON saída STDOUT que corresponda à sintaxe a seguir.

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "ISO8601 timestamp when the credentials expire" }
nota

No momento da elaboração deste documento, a chave Version deve ser definida como 1. Isso pode aumentar ao longo do tempo conforme a estrutura evolui.

A Expiration chave é um carimbo de data/hora formatado em ISO8601. Se a Expiration chave não estiver presente na saída da ferramenta, CLI presume-se que as credenciais são credenciais de longo prazo que não são atualizadas. Caso contrário, as credenciais serão consideradas temporárias e serão atualizadas automaticamente com a nova execução do comando credential_process antes de expirarem.

nota

O AWS CLI não armazena em cache as credenciais do processo externo da mesma forma que assume as credenciais de função. Se o armazenamento em cache for obrigatório, implemente-o no processo externo.

O processo externo pode retornar um código de retorno diferente de zero para indicar que ocorreu um erro ao recuperar as credenciais.