AWS SDK for Ruby 구성 - AWS 루비용 SDK

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

AWS SDK for Ruby 구성

AWS SDK for Ruby를 구성하는 방법을 알아봅니다. AWS 서비스로 개발할 때는 코드가 AWS에서 인증되는 방법을 설정해야 합니다. 사용하려는 AWS 리전도 설정해야 합니다.

보안 인증 공급자 체인

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

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

AWS SDK 및 도구 참조 안내서에는 모든 AWS SDK 및 AWS CLI에서 사용되는 SDK 구성 설정에 대한 정보가 포함되어 있습니다. 공유 AWS config 파일을 통해 SDK를 구성하는 방법에 관해 자세히 알아보려면 Shared config and credentials files를 참조하세요. 환경 변수 설정을 통해 SDK를 구성하는 방법에 관해 자세히 알아보려면 Environment variables support를 참조하세요.

AWS에서 인증하기 위해 AWS SDK for Ruby는 다음 표에 나열된 순서대로 보안 인증 공급자를 확인합니다.

우선 순위에 따른 보안 인증 공급자 AWS SDK 및 도구 참조 안내서 AWS SDK for Ruby API 참조
정적 보안 인증 AWS 액세스 키

Aws::Credentials

Aws::SharedCredentials

AWS Security Token Service(AWS STS)의 웹 자격 증명 토큰 역할 보안 인증 공급자 위임

role_arn, role_session_name, 및 web_identity_token_file 사용

Aws::AssumeRoleWebIdentityCredentials
AWS IAM Identity Center. 이 안내서의 AWS를 사용한 SDK 인증를 참조하세요. IAM Identity Center 보안 인증 공급자 Aws::SSOCredentials
신뢰할 수 있는 엔터티 공급자(예: AWS_ROLE_ARN). 이 안내서의 AWS STS 액세스 토큰 생성을 참조하세요. 역할 보안 인증 공급자 위임

role_arnrole_session_name 사용

Aws::AssumeRoleCredentials
프로세스 보안 인증 공급자 프로세스 보안 인증 공급자 Aws::ProcessCredentials
Amazon Elastic Container Service(Amazon ECS) 보안 인증 컨테이너 보안 인증 공급자 Aws::ECSCredentials
Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 프로파일 보안 인증(IMDS 보안 인증 공급자) IMDS 보안 인증 공급자 Aws::InstanceProfileCredentials

AWS SDK for Ruby 환경 변수 AWS_SDK_CONFIG_OPT_OUT이 설정된 경우 일반적으로 ~/.aws/config에 있는 공유 AWS config 파일은 보안 인증을 위해 파싱되지 않습니다.

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

AWS STS 액세스 토큰 생성

역할 위임에는 일반적으로 액세스 권한이 없을 수 있는 AWS 리소스에 액세스하기 위해 사용할 수 있는 일련의 임시 보안 인증을 사용하는 것이 포함됩니다. 이러한 임시 자격 증명은 액세스 키 ID, 보안 액세스 키 및 보안 토큰으로 구성됩니다. Aws::AssumeRoleCredentials 메서드를 사용하여 AWS Security Token Service(AWS STS) 액세스 토큰을 만들 수 있습니다.

다음 예제에서는 액세스 토큰을 사용해 Amazon S3 클라이언트 객체를 생성합니다. 여기서 linked::account::arn은 위임할 역할의 Amazon 리소스 이름(ARN)이고 session-name은 위임된 역할 세션의 식별자입니다.

role_credentials = Aws::AssumeRoleCredentials.new( client: Aws::STS::Client.new, role_arn: "linked::account::arn", role_session_name: "session-name" ) s3 = Aws::S3::Client.new(credentials: role_credentials)

role_arn 또는 role_session_name의 설정이나 대신 공유 AWS config 파일을 사용하여 이를 설정하는 방법에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서Assume role credential provider를 참조하세요.

리전 설정

대부분의 AWS 서비스를 사용할 때에는 리전을 설정해야 합니다. AWS SDK for Ruby는 다음과 같은 순서로 리전을 검색합니다.

region 설정에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서AWS 리전을 참조하세요. 이 섹션의 나머지 부분에서는 가장 일반적인 접근 방식부터 시작해 리전을 설정하는 방법을 설명합니다.

공유 config 파일을 사용하여 리전 설정

공유 AWS config 파일에서 region 변수를 설정하여 리전을 설정합니다. 공유 config 파일에 대한 자세한 내용은 AWS SDK 및 도구 참조 안내서Shared config and credentials files를 참조하세요.

config 파일에서 이 값을 설정하는 예:

[default] region = us-west-2

환경 변수 AWS_SDK_CONFIG_OPT_OUT이 설정되어 있으면 공유 config 파일을 확인하지 않습니다.

환경 변수를 사용하여 리전 설정

AWS_REGION 환경 변수를 설정해 리전을 설정합니다.

Linux 또는 macOS와 같은 Unix 기반 시스템에서 export 명령을 사용하여 이 변수를 설정합니다. 다음 예제는 리전을 us-west-2로 설정합니다.

export AWS_REGION=us-west-2

Windows에서 이러한 변수를 설정하려면 set 명령을 사용합니다. 다음 예제는 리전을 us-west-2로 설정합니다.

set AWS_REGION=us-west-2

Aws.config로 리전 설정

Aws.config 해시에 region 값을 추가해 리전을 설정합니다. 다음 예제에서는 us-west-1 리전을 사용하도록 Aws.config 해시를 업데이트합니다.

Aws.config.update({region: 'us-west-1'})

이후에 생성하는 클라이언트나 리소스는 이 리전에 구속됩니다.

클라이언트 또는 리소스 객체에서 리전 설정

AWS 클라이언트나 리소스를 생성할 때 리전을 설정합니다. 다음 예제는 us-west-1 리전에서 Amazon S3 리소스 객체를 생성합니다. AWS 리소스에 적합한 리전을 선택합니다. 서비스 클라이언트 객체는 변경할 수 없으므로 요청하는 각 서비스에 대한 새 클라이언트 및 다른 구성을 사용하여 동일한 서비스에 요청을 보낼 새 클라이언트를 만들어야 합니다.

s3 = Aws::S3::Resource.new(region: 'us-west-1')

비표준 엔드포인트 설정

리전은 AWS 요청에 사용할 SSL 엔드포인트를 구성하는 데 사용됩니다. 선택한 리전에서 비표준 엔드포인트를 사용해야 하는 경우 Aws.configendpoint 입력을 추가하세요. 또는 서비스 클라이언트나 리소스 객체를 생성할 때 endpoint:를 설정하세요. 다음 예제는 other_endpoint 엔드포인트에서 Amazon S3 리소스 객체를 생성합니다.

s3 = Aws::S3::Resource.new(endpoint: other_endpoint)

API 요청에 대해 선택한 엔드포인트를 사용하고 해당 선택 사항을 계속 유지하려면 AWS SDK 및 도구 참조 안내서Service-specific endpoints를 참조하세요.