AWS SDK for Ruby 구성 - AWS SDK for Ruby

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

AWS SDK for Ruby 구성

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

SDK for Ruby에는 AWS 서비스에 인터페이스를 제공하는 클라이언트 클래스가 포함되어 있습니다. 각 클라이언트 클래스는 특정를 지원하고 규칙을 AWS 서비스 따릅니다Aws::<service identifier>::Client. 예를 들어 Aws::S3::Client는 Amazon Simple Storage Service 서비스에 대한 인터페이스를 제공하고 Amazon Simple Queue Service 서비스에 대한 인터페이스를 Aws::SQS::Client 제공합니다.

모든에 대한 모든 클라이언트 클래스 AWS 서비스 는 스레드 안전입니다.

클라이언트 클래스를 인스턴스화할 때 AWS 자격 증명을 제공해야 합니다. 자격 증명은 코드, 환경 또는 공유 AWS config 파일 및 공유 AWS credentials 파일에서 제공할 수 있습니다. SDK가 인증 공급자를 확인하는 순서는 섹션을 참조하세요보안 인증 공급자 체인.

공유 configcredentials 파일은 구성 설정에 사용할 수 있습니다. 모든 AWS SDK 설정은 SDK 및 도구 참조 안내서의 설정 참조를 참조하세요. AWS SDKs 서로 다른 프로필을 사용하여 서로 다른 구성을 저장할 수 있습니다. AWS_PROFILE 환경 변수를 사용하여 SDK가 로드하는 프로파일을 지정할 수 있습니다. 의 profile 옵션을 사용하여 활성 프로파일을 설정할 수도 있습니다Aws.config.

설정의 우선 순위

글로벌 설정은 대부분의 SDK가 지원하는 기능, 보안 인증 공급자 및 기타 기능을 구성하며 AWS 서비스전반에 광범위하게 영향을 미칩니다. 모든 AWS SDKs에는 글로벌 설정 값을 찾기 위해 확인하는 일련의 위치(또는 소스)가 있습니다. 일부 소스에서는 일부 설정을 사용할 수 없습니다. 조회 우선 순위 설정은 다음과 같습니다.

  1. 코드나 서비스 클라이언트 자체에 설정된 모든 명시적 설정은 다른 모든 설정보다 우선합니다.

    1. 클라이언트 생성자에게 직접 전달되는 모든 파라미터가 가장 우선합니다.

    2. Aws.config는 글로벌 또는 서비스별 설정을 확인합니다.

  2. 환경 변수를 확인합니다.

  3. 공유 AWS credentials 파일이 확인됩니다.

  4. 공유 AWS config 파일이 확인됩니다.

  5. AWS SDK for Ruby 소스 코드 자체에서 제공하는 모든 기본값은 마지막으로 사용됩니다.

Aws.config

모든 AWS 클래스에 대해 코드 내에서 전역 구성을 제공하려면 aws-sdk-core Gem에서 사용할 수 Aws.config 있는를 사용합니다.

Aws.config는 다양한 용도에 대해 두 가지 구문을 지원합니다. 전역 설정은 모든 AWS 서비스 또는 특정 서비스에 적용할 수 있습니다. 지원되는 설정의 전체 목록은 AWS SDK for Ruby API 참조ClientOptions의 섹션을 참조하세요.

를 통한 전역 설정 Aws.config

를 통해 서비스 비의존적 설정을 설정하려면 다음 구문을 Aws.config사용합니다.

Aws.config[:<global setting name>] = <value>

이러한 설정은 생성된 모든 서비스 클라이언트에 병합됩니다.

글로벌 설정의 예:

Aws.config[:region] = 'us-west-2'

전역적으로 지원되지 않는 설정 이름을 사용하려고 하면 해당 이름을 지원하지 않는 서비스 유형의 인스턴스를 생성하려고 하면 오류가 발생합니다. 이 경우 대신 서비스별 구문을 사용합니다.

를 통한 서비스별 설정 Aws.config

를 통해 서비스별 설정을 지정하려면 다음 구문을 Aws.config사용합니다.

Aws.config[:<service identifier>] = { <global setting name>: <value> }

이러한 설정은 해당 서비스 유형의 생성된 모든 서비스 클라이언트에 병합됩니다.

Amazon S3에만 적용되는 설정의 예:

Aws.config[:s3] = { force_path_style: true }

는 해당 AWS SDK for Ruby Gem 이름의 이름을 보고 "aws-sdk-" 뒤에 오는 접미사를 사용하여 식별할 <service identifier> 수 있습니다. 예시:

  • aws-sdk-s3의 경우 서비스 식별자 문자열은 "s3"입니다.

  • aws-sdk-ecs의 경우 서비스 ID 문자열은 "ecs"입니다.

보안 인증 공급자 체인

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

참고

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

체인의 각 단계마다 값을 설정하는 다양한 방법이 있습니다. 코드에서 직접 값을 설정하는 것이 항상 우선하며, 환경 변수로를 설정한 다음 공유 AWS config 파일에서를 설정합니다.

AWS SDKs 및 도구 참조 안내서에는 모든 AWS SDKs AWS CLI. 공유 AWS config 파일을 통해 SDK를 구성하는 방법에 대한 자세한 내용은 공유 구성 및 보안 인증 파일을 참조하세요. 환경 변수 설정을 통해 SDK를 구성하는 방법에 관해 자세히 알아보려면 Environment variables support 단원을 참조하세요.

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

우선 순위에 따른 보안 인증 공급자 AWS SDKs 및 도구 참조 가이드 AWS SDK for Ruby API Reference
AWS 액세스 키(임시 및 장기 자격 증명) 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. 이 안내서의 를 사용한 SDK 인증 AWS를 참조하세요. 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 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 파일을 사용하여 이를 설정하는 방법에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 역할 자격 증명 공급자 수임을 참조하세요. AWS SDKs

리전 설정

대부분의 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를 참조하세요.