기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSSDK for Rust 자격 증명 공급자 사용
에 대한 모든 요청은에서 발급한 자격 증명을 사용하여 암호화 방식으로 서명해야 AWS합니다AWS. 런타임 시 SDK는 여러 위치를 확인하여 자격 증명의 구성 값을 검색합니다.
검색된 구성에 AWS IAM Identity Center Single Sign-On 액세스 설정이 포함된 경우 SDK는 IAM Identity Center와 협력하여 AWS 서비스에 요청하는 데 사용하는 임시 자격 증명을 검색합니다.
검색된 구성에 임시 자격 증명이 포함된 경우 SDK는 이를 사용하여 AWS 서비스호출합니다. 임시 자격 증명은 액세스 키와 세션 토큰으로 구성됩니다.
를 사용한 인증은 코드베이스 외부에서 처리할 AWS수 있습니다. SDK는 자격 증명 공급자 체인을 사용하여 많은 인증 방법을 자동으로 감지하고 사용하며 새로 고칠 수 있습니다.
프로젝트의 AWS인증을 시작하기 위한 안내 옵션은 AWSSDKs 및 도구 참조 안내서의 인증 및 액세스를 참조하세요.
자격 증명 공급자 체인
클라이언트를 구성할 때 자격 증명 공급자를 명시적으로 지정하지 않으면 SDK for Rust가 자격 증명을 제공할 수 있는 일련의 위치를 확인하는 자격 증명 공급자 체인을 사용합니다. SDK가 이러한 위치 중 하나에서 자격 증명을 찾으면 검색이 중지됩니다. 클라이언트 구성에 대한 자세한 내용은 코드에서 AWS SDK for Rust 서비스 클라이언트 구성 섹션을 참조하세요.
다음 예제에서는 코드에 자격 증명 공급자를 지정하지 않습니다. SDK는 자격 증명 공급자 체인을 사용하여 호스팅 환경에 설정된 인증을 감지하고 AWS 서비스에 대한 직접 호출에 해당 인증을 사용합니다.
let config = aws_config::defaults(BehaviorVersion::latest()).load().await; let s3 = aws_sdk_s3::Client::new(&config);
자격 증명 가져오기 순서
자격 증명 공급자 체인은 다음과 같은 사전 정의된 시퀀스를 사용하여 자격 증명을 검색합니다.
-
액세스 키 환경 변수
SDK는
AWS_ACCESS_KEY_ID및AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN환경 변수에서 자격 증명을 로드하려고 시도합니다. -
공유AWS
config및credentials파일SDK는 공유AWS
config및credentials파일의[default]프로필에서 자격 증명을 로드하려고 시도합니다.AWS_PROFILE환경 변수를 사용하여[default]를 사용하는 대신 SDK가 로드할 명명된 프로파일을 선택할 수 있습니다.config및credentials파일은 다양한AWSSDKs 및 도구에서 공유됩니다. 이러한 파일에 관한 자세한 정보를 알아보려면 AWS SDK 및 도구 참조 가이드에 나와 있는 공유config및credentials파일 섹션을 참조하세요. 프로필에서 지정할 수 있는 표준화된 공급자에 대한 자세한 내용은 AWSSDKs 및 도구 표준화된 자격 증명 공급자를 참조하세요. -
AWS STS웹 자격 증명
액세스가 필요한 모바일 애플리케이션 또는 클라이언트 기반 웹 애플리케이션을 생성할 때AWSAWS Security Token Service(AWS STS)는 퍼블릭 자격 증명 공급자(IdP)를 통해 인증된 페더레이션 사용자를 위한 임시 보안 자격 증명 세트를 반환합니다.
-
프로필에서 이를 지정하면 SDK 또는 도구가 API 메서드를 사용하여AWS STS
AssumeRoleWithWebIdentity임시 자격 증명을 검색하려고 시도합니다. 이 메서드에 관한 자세한 정보는 AWS Security Token Service API 참조의 AssumeRoleWithWebIdentity를 참조하세요. -
이 공급자 구성에 대한 지침은 AWS SDK 및 도구 참조 안내서의 웹 자격 증명 또는 OpenID Connect로 페더레이션을 참조하세요.
-
이 공급자의 SDK 구성 속성에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서의 역할 자격 증명 공급자 수임을 참조하세요.
-
-
Amazon ECS 및 Amazon EKS 컨테이너 자격 증명
Amazon Elastic Container Service 작업과 Kubernetes 서비스 계정에는 이와 연결된 IAM 역할이 있을 수 있습니다. IAM 역할에서 부여된 권한은 작업에서 실행 중인 컨테이너 또는 포드의 컨테이너에 위임됩니다. 이 역할을 통해 컨테이너에 있는 SDK for Rust 애플리케이션 코드가 다른 AWS 서비스를 사용할 수 있습니다.
SDK는 Amazon ECS 및 Amazon EKS에서 자동으로 설정할 수 있는
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI또는AWS_CONTAINER_CREDENTIALS_FULL_URI환경 변수에서 자격 증명을 검색하려고 시도합니다.-
Amazon ECS에서 이 역할을 설정하는 방법에 관한 자세한 내용은 Amazon Elastic Container Service 개발자 안내서의 Amazon ECS 작업 IAM 역할을 참조하세요.
-
Amazon EKS 설정 정보는 Amazon EKS 사용 설명서의 Amazon EKS Pod Identity Agent 설정을 참조하세요.
-
이 공급자의 SDK 구성 속성에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서의 컨테이너 자격 증명 공급자를 참조하세요.
-
-
Amazon EC2 인스턴스 메타데이터 서비스
IAM 역할을 생성하여 이를 인스턴스에 연결합니다. 인스턴스의 SDK for Rust 애플리케이션은 인스턴스 메타데이터에서 역할이 제공하는 자격 증명을 검색하려고 시도합니다.
-
SDK for Rust는 IMDSv2만 지원합니다.
-
이 역할 설정과 메타데이터 사용에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon EC2용 IAM 역할 및 인스턴스 메타데이터 작업에서 확인하세요.
-
이 공급자의 SDK 구성 속성에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서의 IMDS 자격 증명 공급자를 참조하세요.
-
-
이 시점에서 자격 증명이 여전히 확인되지 않으면 오류가 있는 panics 작업입니다.
AWS자격 증명 공급자 구성 설정에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 설정 참조에서 표준화된 자격 증명 공급자를 참조하세요. AWSSDKs
명시적 자격 증명 공급자
자격 증명 공급자 체인을 사용하여 인증 방법을 감지하는 대신 SDK에서 사용해야 하는 특정 자격 증명 공급자를 지정할 수 있습니다. aws_config::defaults를 사용하여 일반 구성을 로드할 때 다음과 같이 사용자 지정 자격 증명 공급자를 지정할 수 있습니다.
let config = aws_config::defaults(BehaviorVersion::latest()) .credentials_provider(MyCredentialsProvider::new()) .load() .await;
ProvideCredentials
자격 증명 캐싱
SDK는 자격 증명 및 SSO 토큰과 같은 기타 자격 증명 유형을 캐싱합니다. 기본적으로 SDK는 처음 요청 시 자격 증명을 로드하고 캐싱한 다음 만료될 때 다른 요청 중에 자격 증명을 새로 고치려고 시도하는 지연 캐시 구현을 사용합니다. 동일한 SdkConfig에서 생성된 클라이언트는 IdentityCache