メニュー
AWS SDK for Ruby
開発者ガイド

AWS SDK for Ruby の設定

AWS SDK for Ruby の設定方法を学習します。SDK を使用するには、AWS 認証情報を設定するか、または AWS STS アクセストークンを作成し、使用する AWS リージョンを設定します。

AWS 認証情報の設定

AWS SDK for Ruby を使用して、AWS サービスを呼び出す前に、AWS のサービスおよびリソースへのアクセスを確認するために SDK が使用する、AWS アクセス認証情報を設定する必要があります。

AWS SDK for Ruby は、次の手順で認証情報を検索します。

以下のセクションでは、認証情報を設定できるさまざまな方法を最も柔軟な方法から説明します。AWS 認証情報と認証情報管理の推奨される方法の詳細については、Amazon Web Services General Referenceの「AWS セキュリティの認証情報」を参照してください。

共有認証情報の設定

ローカルシステム上の AWS 認証情報プロファイルのファイルで共有認証情報を設定します。

Linux または OS X のような、Unix ベースのシステムでは、このファイルは次の場所にあります。

~/.aws/credentials

Windows では、このファイルは次の場所にあります。

%HOMEPATH%\.aws\credentials

default が、これらの認証情報に付与されたデフォルトの設定プロファイルで、your_access_key_id がアクセスキーの値で、your_secret_access_key がシークレットアクセスキーの値である場合、このファイルは次の形式である必要があります。

[default] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_key

環境変数を使用して認証情報を設定する

AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY 環境変数を設定する

export コマンドを使用して、Linux または OS X などの Unix ベースのシステム上でこれらの変数を設定します。次の例では、アクセスキーの値を your_access_key_id に設定し、シークレットアクセスキーの値を your_secret_access_key に設定します。

export AWS_ACCESS_KEY_ID=your_access_key_id export AWS_SECRET_ACCESS_KEY=your_secret_access_key

Windows 上でこれらの変数を設定するには、次の例に示すように、set コマンドを使用します。

set AWS_ACCESS_KEY_ID=your_access_key_id set AWS_SECRET_ACCESS_KEY=your_secret_access_key

Aws.config を使用して認証情報を設定する

Aws.config ハッシュで、値を更新することで、コードの認証情報を設定します。

次の例では、アクセスキーの値を your_access_key_idに設定し、シークレットアクセスキーの値を your_secret_access_key に設定します。その後作成するどのクライアントやリソースも、これらの認証情報を使用します。

Aws.config.update({ credentials: Aws::Credentials.new('your_access_key_id', 'your_secret_access_key') })

クライアントオブジェクト内で認証情報を設定する

AWS クライアントを作成する際、指定してコードの認証情報を設定します。

次の例では、アクセスキー your_access_key_id およびシークレットアクセスキー your_secret_access_key を使用して Amazon S3 クライアントを作成します。

s3 = Aws::S3::Client.new( access_key_id: 'your_access_key_id', secret_access_key: 'your_secret_access_key' )

IAM を使用して認証情報を設定する

Amazon Elastic Compute Cloud インスタンスの場合、IAM ロールを指定し、そのロールへのアクセスを Amazon EC2 インスタンスに提供します。詳細については、Amazon EC2 User Guide for Linux Instancesの「Amazon EC2 の IAM ロール」または Amazon EC2 User Guide for Windows Instancesの「Amazon EC2 の IAM ロール」を参照してください。

AWS STS アクセストークンの作成

Aws::AssumeRoleCredentials メソッドを使用して、AWS STS アクセストークンを作成します。

次の例では、linked::account::arn が引き受けるロールの Amazon リソースネーム (ARN) で、session-name が引き受けたロールセッションの識別子である場合、アクセストークンを使用して Amazon S3 クライアントオブジェクトを作成します。

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)

リージョンの設定

ほとんどの AWS サービスを使用する際には リージョン を設定する必要があります。AWS リージョンは AWS の認証情報の設定と似た方法で設定できます。AWS SDK for Ruby は、次の手順でリージョンを検索します。

このセクションのこれ以降の部分では、リージョンに設定する方法を最も柔軟な方法から説明します。

環境変数を使用してリージョンを設定する

AWS_REGION 環境変数を設定して、リージョンを設定します。

export コマンドを使用して、Linux または OS X などの Unix ベースのシステムでこの変数を設定します。次の例では、リージョンを us-west-2 に設定します。

export AWS_REGION=us-west-2

Windows でこれらの変数を設定するには、set コマンドを使用します。次の例では、リージョンを us-west-2 に設定します。

set AWS_REGION=us-west-2

Aws.config を使用してリージョンを設定する

region 値を Aws.config ハッシュに追加してリージョンを設定します。次の例は Aws.config ハッシュを更新して us-west-1 リージョンを使用します。

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

その後作成するどのクライアントやリソースもこのリージョンにバインドされます。

クライアントまたはリソースオブジェクト内でのリージョンの設定

AWS クライアントまたはリソースを作成するときにリージョンを設定します。次の例では、us-west-1 リージョンに Amazon S3 リソースオブジェクトを作成します。

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

標準外のエンドポイントを設定する

選択したリージョンで標準外エンドポイントを使用する必要がある場合は、endpoint エントリを Aws.config に追加するか、サービスクライアントまたはリソースオブジェクトを作成するときに endpoint: を設定します。次の例では、other_endpoint エンドポイントに Amazon S3 リソースオブジェクトを作成します。

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