기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
외부 프로세스에서 임시 자격 증명 로드
다음은 외부 프로세스에서 자격 증명을 소싱하는 방법을 설명합니다. 이는 잠재적으로 위험할 수 있으므로 주의해서 진행하세요. 가능하면 다른 보안 인증 공급자를 이용하는 것이 좋습니다. 이 옵션을 사용하는 경우 운영 체제의 보안 모범 사례를 사용하여 가능하면 config
파일을 잠그도록 해야 합니다.
사용자 지정 자격 증명 도구가 StdErr
에 비밀 정보를 기록하지 않도록 하세요. SDK는 이러한 정보를 캡처하고 AWS CLI 기록할 수 있으며, 이로 인해 권한이 없는 사용자에게 정보가 노출될 수 있습니다.
Java 2.x용 SDK를 사용하면 외부 프로세스로부터 사용자 지정 사용 사례에 대한 임시 자격 증명을 얻을 수 있습니다. 이 기능을 구성하는 방법에는 두 가지가 있습니다.
credential_process
설정 사용
임시 자격 증명을 제공하는 방법이 있는 경우 credential_process
설정을 프로필 정의의 일부로 config
파일에 추가하여 통합할 수 있습니다. 지정하는 값은 명령 파일의 전체 경로를 사용해야 합니다. 파일 경로에 공백이 있는 경우 따옴표로 감싸야 합니다.
SDK가 명령을 그대로 정확하게 호출한 후 stdout
에서 JSON 데이터를 읽어옵니다.
다음 예에서는 공백이 없는 파일 경로와 공백이 있는 파일 경로에 이 설정을 사용하는 방법을 보여줍니다.
- Linux/macOS
-
- 파일 경로에 공백이 없음
-
[profile process-credential-profile]
credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
- 파일 경로에 공백
-
[profile process-credential-profile]
credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
- Windows
-
- 파일 경로에 공백이 없음
-
[profile process-credential-profile]
credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
- 파일 경로에 공백
-
[profile process-credential-profile]
credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter
다음 코드 조각은 이름이 process-credential-profile
로 지정된 프로필의 일부로 정의된 임시 자격 증명을 사용하는 서비스 클라이언트를 빌드하는 방법을 보여줍니다.
Region region = Region.US_WEST_2;
S3Client s3Client = S3Client.builder()
.region(region)
.credentialsProvider(ProfileCredentialsProvider.create("process-credential-profile"))
.build();
외부 프로세스를 임시 자격 증명 소스로 사용하는 방법에 대한 자세한 내용은 AWS SDK 및 도구 참조 가이드의 프로세스 자격 증명 섹션을 참조하십시오.
ProcessCredentialsProvider
사용
config
파일의 설정을 사용하는 대신 SDK의 ProcessCredentialsProvider
를 사용하여 Java로 임시 자격 증명을 로드할 수 있습니다.
다음 예제는 ProcessCredentialsProvider
를 사용하여 외부 프로세스를 지정하고 임시 자격 증명을 사용하는 서비스 클라이언트를 구성하는 다양한 버전의 방법을 보여줍니다.
- Linux/macOS
-
- 파일 경로에 공백이 없음
-
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();
- 파일 경로에 공백
-
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
-
- 파일 경로에 공백이 없음
-
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();
- 파일 경로에 공백
-
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();