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

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

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

에 대한 모든 요청은에서 발급한 자격 증명을 사용하여 암호화 방식으로 서명해야 AWS 합니다 AWS. 런타임 시 SDK는 여러 위치를 확인하여 자격 증명의 구성 값을 검색합니다.

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

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

자격 증명 공급자 체인

클라이언트를 구성할 때 자격 증명 공급자를 명시적으로 지정하지 않으면 SDK for C++는 자격 증명을 제공할 수 있는 일련의 위치를 확인하는 자격 증명 공급자 체인을 사용합니다. 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)를 통해 인증된 페더레이션 사용자를 위한 임시 보안 자격 증명 세트를 반환합니다.

    • 프로필에서 이를 지정하면 SDK 또는 도구가 AssumeRoleWithWebIdentity API 메서드를 사용하여 AWS STS 임시 자격 증명을 검색하려고 시도합니다. 이 방법에 대한 자세한 내용은 API 참조의 AssumeRoleWithWebIdentity를 참조하세요. AWS Security Token Service

    • 이 공급자 구성에 대한 지침은 SDK 및 도구 참조 안내서의 웹 자격 증명으로 페더레이션 또는 OpenID Connect를 참조하세요. AWS SDKs

    • 이 공급자의 SDK 구성 속성에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 역할 자격 증명 공급자 수임을 참조하세요. AWS SDKs

  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에 있는에서 검토할 수 있습니다.

새 사용자가 시작할 수 있도록 권장 접근 방식을 따른 경우 시작하기 주제 AWS SDK for C++를 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 공유합니다.