AWS SDK for C++ 자격 증명 공급자 사용 - AWS SDK for C++

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

AWS SDK for C++ 자격 증명 공급자 사용

를 AWS 사용하여에 요청하기 위해 SDK는 AWS SDK for C++에서 발급한 암호화 서명 자격 증명을 사용합니다 AWS. 런타임 시 SDK는 여러 위치를 확인하여 자격 증명의 구성 값을 검색합니다.

를 사용한 인증은 코드베이스 외부에서 처리할 AWS 수 있습니다. SDK는 자격 증명 공급자 체인을 사용하여 많은 인증 방법을 자동으로 감지, 사용 및 새로 고칠 수 있습니다.

프로젝트의 AWS 인증을 시작하기 위한 안내 옵션은 SDK 및 도구 참조 안내서의 인증 및 액세스를 참조하세요. AWS SDKs

자격 증명 공급자 체인

클라이언트를 구성할 때 자격 증명 공급자를 명시적으로 지정하지 않으면 C++용 SDK는 자격 증명을 제공할 수 있는 일련의 위치를 확인하는 자격 증명 공급자 체인을 사용합니다. SDK가 이러한 위치 중 하나에서 자격 증명을 찾으면 검색이 중지됩니다.

자격 증명 검색 순서

모든 SDK에는 AWS 서비스에 요청하는 데 사용할 유효한 보안 인증을 얻기 위해 확인하는 일련의 장소(또는 소스)가 있습니다. 유효한 보안 인증 정보를 찾은 후에는 검색이 중지됩니다. 이러한 체계적인 검색을 자격 증명 공급자 체인이라고 합니다.

체인의 각 단계마다 값을 설정하는 다양한 방법이 있습니다. 코드에서 직접 값을 설정하는 것이 항상 우선하며, 환경 변수로를 설정한 다음 공유 AWS config 파일에서를 설정합니다. 자세한 내용은AWS SDK 및 도구 참조 안내서Precedence of settings를 참조하세요.

SDK는 공유 AWS configcredentials 파일의 [default] 프로필에서 자격 증명을 로드하려고 시도합니다. AWS_PROFILE 환경 변수를 사용하여를 사용하는 대신 SDK가 로드할 명명된 프로파일을 선택할 수 있습니다[default]. configcredentials 파일은 AWS SDKs 및 도구에서 공유됩니다. AWS SDKs 및 도구 참조 가이드에는 AWS SDKs 및에서 사용하는 SDK 구성 설정에 대한 정보가 있습니다 AWS CLI. 공유 AWS config 파일을 통해 SDK를 구성하는 방법에 대한 자세한 내용은 공유 구성 및 자격 증명 파일을 참조하세요. 환경 변수 설정을 통해 SDK를 구성하는 방법에 관해 자세히 알아보려면 Environment variables support 단원을 참조하세요.

를 인증하기 위해 C++용 SDK AWS는 자격 증명 공급자를 다음 순서로 확인합니다.

  1. AWS 액세스 키(임시 및 장기 자격 증명)

    SDK는 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN 환경 변수 또는 공유 AWS credentials 파일에서 자격 증명을 로드하려고 시도합니다.

    • 이 공급자 구성에 대한 지침은 SDK 및 도구 참조 안내서의 AWS 액세스 키를 참조하세요. AWS SDKs

    • 이 공급자의 SDK 구성 속성에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 AWS 액세스 키를 참조하세요. AWS SDKs

  2. AWS STS 웹 자격 증명

    액세스가 필요한 모바일 애플리케이션 또는 클라이언트 기반 웹 애플리케이션을 생성할 때 AWS AWS Security Token Service (AWS STS)는 퍼블릭 자격 증명 공급자(IdP)를 통해 인증된 페더레이션 사용자를 위한 임시 보안 자격 증명 세트를 반환합니다.

  3. IAM Identity Center

    IAM Identity Center를 사용하여 인증하는 경우 C++용 SDK가 AWS CLI 명령를 실행하여 설정한 Single Sign-On 토큰을 사용하는 경우입니다aws sso login. SDK는 IAM Identity Center가 유효한 토큰으로 교환한 임시 자격 증명을 사용합니다. 그러면 SDK는를 호출할 때 임시 자격 증명을 사용합니다 AWS 서비스. 이 프로세스에 대한 자세한 내용은 SDK 및 도구 참조 안내서의에 대한 SDK 자격 증명 확인 이해를 AWS 서비스 AWS SDKs.

  4. 외부 프로세스 공급자

    이 공급자는 온프레미스 자격 증명 저장소에서 자격 증명을 검색하거나 온프레미스 ID 제공업체와 통합하는 등 사용자 지정 구현을 제공하는 데 사용할 수 있습니다.

    • 이 공급자를 구성하는 한 가지 방법에 대한 지침은 SDK 및 도구 참조 안내서의 IAM Roles Anywhere를 참조하세요. AWS SDKs

    • 이 공급자의 SDK 구성 속성에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 프로세스 자격 증명 공급자를 참조하세요. AWS SDKs

  5. Amazon ECS 및 Amazon EKS 컨테이너 자격 증명

    Amazon Elastic Container Service 태스크와 Kubernetes 서비스 계정에는 IAM 역할이 연결될 수 있습니다. IAM 역할에 부여된 권한은 포드의 작업 또는 컨테이너에서 실행되는 컨테이너에서 수임합니다. 이 역할을 사용하면 SDK for C++ 애플리케이션 코드(컨테이너에 있음)가 다른 코드를 사용할 수 있습니다 AWS 서비스.

    SDK는 Amazon ECS 및 Amazon EKS에서 자동으로 설정할 수 있는 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 또는 AWS_CONTAINER_CREDENTIALS_FULL_URI 환경 변수에서 자격 증명을 검색하려고 시도합니다.

  6. Amazon EC2 인스턴스 메타데이터 서비스

    IAM 역할을 생성하여 인스턴스에 연결합니다. 인스턴스의 SDK for C++ 애플리케이션은 인스턴스 메타데이터에서 역할이 제공한 자격 증명을 검색하려고 시도합니다.

자격 증명 공급자 체인은 GitHub의 AWS SDK for C++ 소스 코드AWSCredentialsProviderChain에서에서 검토할 수 있습니다.

새 사용자가 시작할 수 있도록 권장 접근 방식을 따른 경우 시작하기 주제 를 사용하여 C++용 AWS SDK 인증 AWS 중에 AWS IAM Identity Center 인증을 설정합니다. 상황에 따라 다른 인증 방법이 유용할 수 있습니다. 보안 위험을 방지하려면 항상 단기 보안 인증을 사용하는 것이 좋습니다. 다른 인증 방법 절차에 대해서는AWS SDK 및 도구 참조 안내서Authentication and access를 참조하세요.

명시적 자격 증명 공급자

자격 증명 공급자 체인을 사용하여 인증 방법을 감지하는 대신 SDK에서 사용해야 하는 특정 자격 증명 공급자를 지정할 수 있습니다. 서비스 클라이언트의 생성자에 자격 증명을 제공하여이 작업을 수행할 수 있습니다.

다음 예시에서는 체인을 사용하는 대신 임시 액세스 자격 증명을 직접 제공하여 Amazon Simple Storage Service 클라이언트를 생성합니다.

SDKOptions options; Aws::InitAPI(options); { const auto cred_provider = Aws::MakeShared<Auth::SimpleAWSCredentialsProvider>("TestAllocationTag", "awsAccessKeyId", "awsSecretKey", "sessionToken"); S3Client client{cred_provider}; } Aws::ShutdownAPI(options);

자격 증명 캐싱

SDK는 자격 증명 및 SSO 토큰과 같은 기타 자격 증명 유형을 캐시합니다. 기본적으로 SDK는 첫 번째 요청 시 자격 증명을 로드하고 캐싱한 다음 만료에 가까워지면 다른 요청 중에 자격 증명을 새로 고치려고 시도하는 지연 캐시 구현을 사용합니다. 동일한에서 생성된 클라이언트는 캐시를 Aws::Client::ClientConfiguration 공유합니다.