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. Os SDKs AWS CLI podem capturar e registrar essas informações, potencialmente expondo-as a usuários não autorizados.

Com o SDK para 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.

O SDK chama o comando exatamente como determinado e, em seguida, lê dados JSON de stdout.

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 AWS SDKs e ferramentas.

Usar a ProcessCredentialsProvider

Como alternativa ao uso das configurações no arquivo config, você pode usar o ProcessCredentialsProvider de SDKs 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();