에서 외부 프로세스를 사용하여 보안 인증 정보 소싱 AWS CLI - AWS Command Line Interface

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 외부 프로세스를 사용하여 보안 인증 정보 소싱 AWS CLI

주의

이 주제에서는 외부 프로세스에서 자격 증명을 소싱하는 방법을 알아봅니다. 자격 증명을 생성하는 명령이 승인되지 않은 프로세스나 사용자가 액세스할 수 있게 된 경우에는 이것이 보안 위험이 될 수 있습니다. 자격 증명 손상 위험을 줄 AWS 이려면 AWS CLI 및 에서 제공하는 지원되는 안전한 대안을 사용하는 것이 좋습니다. config 파일과 유출 방지를 도와주는 모든 파일 및 도구를 보호하고 있는지 확인합니다.

SDKs 사용자 지정 보안 인증 도구는 및 가 이러한 정보를 캡처하고 기록할 AWS CLI 수 있어 권한이 없는 사용자에게 노출될 수 StdErr 있으므로 에 보안 정보를 쓰지 않도록 해야 합니다.

에서 직접 지원하지 않는 보안 인증 정보를 생성하거나 조회하는 방법이 있는 AWS CLI경우 config 파일에서 credential_process 설정을 구성하여 가 이를 AWS CLI 사용하도록 구성할 수 있습니다.

예를 들어 config 파일에 다음과 유사한 항목을 포함시킬 수 있습니다.

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

기존 운영 체제와 호환되는 방식으로 이 문자열을 생성하려면 다음 규칙을 따르십시오.

  • 경로 또는 파일 이름에 공백이 있으면 전체 경로와 파일 이름을 큰 따옴표(" ")로 묶습니다. 경로 및 파일 이름은 다음 문자만 포함할 수 있습니다. A-Z a-z 0-9 - _ . 공백

  • 파라미터 이름이나 파라미터 값에 공백이 있으면 해당 요소를 큰 따옴표(" ")로 묶습니다. 전체 페어가 아니라 이름 또는 값만 묶으십시오.

  • 문자열 안에 환경 변수를 포함하지 마십시오. 예를 들어 $HOME 또는 %USERPROFILE%를 포함할 수 없습니다.

  • 홈 폴더를 ~로 지정하지 마십시오. 전체 경로를 지정해야 합니다.

Windows용 예

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

Linux 또는 macOS용 예

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

자격 증명 프로그램에서 예상되는 출력

는 프로파일에 지정된 대로 명령을 AWS CLI 실행한 다음 에서 데이터를 읽습니다STDOUT. 지정하는 명령은 다음 구문STDOUT과 일치하는 JSON 출력을 에 생성해야 합니다.

{ "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" }
참고

이 문서의 작성일 현재, Version 키는 1로 설정되어 있습니다. 구조가 발전하면서 시간에 따라 이 값이 증가할 수 있습니다.

Expiration 키는 ISO8601 형식의 타임스탬프입니다. Expiration 키가 도구의 출력에 없는 경우 는 보안 인증이 새로 고쳐지지 않는 장기 보안 인증 정보라고 CLI 가정합니다. 그렇지 않은 경우 자격 증명은 임시 자격 증명으로 간주되며, 기간이 만료되기 전에 credential_process 명령을 다시 실행하면 자동으로 새로 고침됩니다.

참고

AWS CLI 는 외부 프로세스 자격 증명을 수임-역할 자격 증명을 수행하는 방식으로 캐시하지 않습니다. 캐싱이 필요한 경우에는 외부 프로세스에서 이를 실행해야 합니다.

외부 프로세스는 자격 증명을 검색하는 동안 오류가 발생했음을 나타내기 위해 0이 아닌 반환 코드를 반환할 수 있습니다.