Credenciais de fornecimento com um processo externo - AWS Command Line Interface

Credenciais de fornecimento com um processo externo

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 compatíveis fornecidas pela AWS CLI e pela 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 credenciais personalizada não grave informações secretas no StdErr porque os SDKs e a CLI podem capturar e registrar essas informações, possivelmente expondo-as a usuários não autorizados.

Se você tiver um método para gerar ou procurar credenciais não compatíveis diretamente com a AWS CLI, poderá configurar a CLI para usá-lo definindo a configuração credential_process no arquivo config.

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

A AWS CLI executa o comando conforme especificado no perfil e lê os dados de STDOUT. O comando especificado deverá gerar a saída JSON em STDOUT que corresponde à 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 chave Expiration é um timestamp no formato ISO8601. Se a chave Expiration não estiver presente na saída da ferramenta, a CLI vai supor que as credenciais são em 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

A AWS CLI não armazena em cache as credenciais do processo como faz com credenciais assume-role. 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.