Carregar credenciais temporárias de um processo externo - AWS SDK for Java 2.x

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

Carregar credenciais temporárias de um processo externo

Atenção

A seguir, descrevemos um método de obtenção de credenciais temporárias de um processo externo. Isto pode ser potencialmente perigoso, portanto, prossiga com cuidado. Outros provedores de credenciais devem ser preferidos, se possível. Ao usar esta opção, certifique-se de que o config arquivo esteja o mais bloqueado possível usando as melhores práticas de segurança para seu sistema operacional.

Certifique-se de que sua ferramenta de credenciais personalizadas não grave nenhuma informação secreta em StdErr. SDKse AWS CLI pode capturar e registrar essas informações, potencialmente expondo-as a usuários não autorizados.

Com o SDK for Java 2.x, você pode adquirir credenciais temporárias de um processo externo para casos de uso personalizados. Há duas maneiras de configurar essa funcionalidade.

Usar a configuração credential_process

Se você tiver um método que forneça credenciais temporárias, poderá integrá-lo adicionando a configuração credential_process como parte de uma definição de perfil no arquivo config. O valor especificado deve usar o caminho completo para o arquivo de comando. Se o caminho do arquivo contiver espaços, você deverá colocá-lo entre aspas.

Ele SDK chama o comando exatamente como indicado e, em seguida, lê JSON os dados destdout.

Os exemplos a seguir mostram o uso dessa configuração para caminhos de arquivo sem espaços e caminhos de arquivo com espaços.

Linux/macOS
Sem espaços no caminho do arquivo
[profile process-credential-profile] credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
Espaços no caminho do arquivo
[profile process-credential-profile] credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
Windows
Sem espaços no caminho do arquivo
[profile process-credential-profile] credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
Espaços no caminho do arquivo
[profile process-credential-profile] credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter

O trecho de código a seguir demonstra como criar um cliente de serviço que usa as credenciais temporárias definidas como parte do perfil nomeado process-credential-profile.

Region region = Region.US_WEST_2; S3Client s3Client = S3Client.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("process-credential-profile")) .build();

Para obter informações detalhadas sobre o uso de um processo externo como fonte de credenciais temporárias, consulte a seção de credenciais do processo no Guia de referência de ferramentas AWS SDKs e ferramentas.

Usar a ProcessCredentialsProvider

Como alternativa ao uso de configurações no config arquivo, você pode usar o SDK's ProcessCredentialsProvider para carregar credenciais temporárias usando Java.

Os exemplos a seguir mostram várias versões de como especificar um processo externo usando o ProcessCredentialsProvider e configurando um cliente de serviço que usa as credenciais temporárias.

Linux/macOS
Sem espaços no caminho do arquivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path/to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Espaços no caminho do arquivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("/path\\ with\\ spaces\\ to/credentials.sh optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Windows
Sem espaços no caminho do arquivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("C:\\Path\\To\\credentials.exe optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();
Espaços no caminho do arquivo
ProcessCredentialsProvider credentials = ProcessCredentialsProvider .builder() .command("\"C:\\Path\\With Spaces To\\credentials.exe\" optional_param1 optional_param2") .build(); S3Client s3 = S3Client.builder() .region(Region.US_WEST_2) .credentialsProvider(credentials) .build();