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

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

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

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

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

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

자격 증명 공급자 체인

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

자격 증명 가져오기 순서

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

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

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

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

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

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

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

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

  2. AWS STS 웹 자격 증명

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

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

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

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

  3. IAM Identity Center

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

  4. AWS 로그인을 사용한 로그인 자격 증명 자격 증명 해석기

    AWS 로그인 및 콘솔 자격 증명을 사용하여 인증하는 경우, SDK for C++가 aws login 또는 CLIaws login --profile에서를 실행하여 설정한 콘솔 자격 증명을 사용하는 경우입니다. SDK는 AWS 서비스를 호출할 때 이러한 자격 증명을 사용합니다.

  5. 외부 프로세스 공급자

    이 공급자를 사용하면 온프레미스 자격 증명 저장소에서 자격 증명을 가져오거나, 온프레미스 ID 공급자와 통합하는 등 사용자 지정 구현을 제공할 수 있습니다.

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

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

  6. 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 환경 변수에서 자격 증명을 검색하려고 시도합니다.

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

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

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

새 사용자가 시작할 수 있도록 권장 접근 방식을 따른 경우 시작하기 주제 AWS SDK for C++를 AWS 사용하여 로 인증 중에 AWS 로그인 자격 증명 인증을 설정합니다. 상황에 따라 다른 인증 방법이 유용할 수 있습니다. 보안 위험을 방지하려면 항상 단기 보안 인증을 사용하는 것이 좋습니다. 다른 인증 방법 절차에 대해서는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);

ID 캐싱

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