Ruby AWS SDKの を設定する - AWS SDK Ruby 用

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Ruby AWS SDKの を設定する

Ruby 用の AWS SDK を設定する方法について説明します。 AWS のサービスを使用して開発する際には、 AWS によりコードがどのように認証するかを確立する必要があります。 AWS リージョン 使用する も設定する必要があります。

認証情報プロバイダーチェーン

すべての SDKsには、 へのリクエストに使用する有効な認証情報を取得するためにチェックする一連の場所 (またはソース) があります AWS のサービス。有効な認証情報が見つかると、検索は停止されます。この体系的な検索は、デフォルトの認証情報プロバイダーチェーンと呼ばれます。

チェーンのステップごとに、値を設定するさまざまな方法があります。コード内で直接値を設定することが常に優先され、次に環境変数として を設定し、次に共有 AWS configファイルで を設定します。詳細については、「」および「ツールリファレンスガイド」の「設定の優先順位」を参照してください。 AWS SDKs

AWS SDKs および ツールリファレンスガイドには、すべての AWS SDKs および で使用されるSDK設定に関する情報が記載されています AWS CLI。共有 AWS configファイルSDKを使用して を設定する方法の詳細については、「共有設定ファイル」および「認証情報ファイル」を参照してください。環境変数を設定して SDKを設定する方法の詳細については、「環境変数が をサポートする」を参照してください。

で認証するために AWS、 AWS SDK for Ruby は、次の表に示す順序で認証情報プロバイダーをチェックします。

認証情報プロバイダー (優先順位順) AWS SDKs およびツールリファレンスガイド AWS SDK for Ruby API リファレンス
AWS アクセスキー (一時的および長期的な認証情報) AWS アクセスキー

Aws::Credentials

Aws::SharedCredentials

AWS Security Token Service (AWS STS) からのウェブ ID トークン ロール認証情報プロバイダーを引き受けます

role_arnrole_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_arn および role_session_name を使用する

Aws::AssumeRoleCredentials
プロセス認証情報プロバイダー プロセス認証情報プロバイダー Aws::ProcessCredentials
Amazon Elastic Container Service (Amazon ECS) 認証情報 コンテナ認証情報プロバイダー Aws::ECSCredentials
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスプロファイル認証情報 (IMDS 認証情報プロバイダー) IMDS 認証情報プロバイダー Aws::InstanceProfileCredentials

for Ruby AWS SDK環境変数AWS_SDK_CONFIG_OPT_OUTが設定されている場合、共有 AWS configファイルは、通常は で ~/.aws/config、認証情報について解析されません。

新規ユーザーに推奨されるアプローチで開始した場合は、「使用開始」のトピックの AWS による SDK 認証 中に AWS IAM Identity Center 認証を設定します。その他の認証方法もさまざまな状況で役に立ちます。セキュリティリスクを避けるため、常に短期の認証情報を使用することをお勧めします。その他の認証方法の手順については、「」および「ツールリファレンスガイド」の「認証とアクセス」を参照してください。 AWS SDKs

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 または の設定、または代わりに共有 AWS configファイルを使用した設定の詳細についてはrole_session_name、「」およびAWS SDKs「ツールリファレンスガイド」の「ロール認証情報プロバイダーを引き受ける」を参照してください。

リージョンの設定

AWS のサービスのほとんどのサービスでは、使用時にリージョンを設定する必要があります。for Ruby AWS SDKは、次の順序でリージョンを検索します。

region 設定の詳細については、「」およびAWS SDKs「ツールリファレンスガイドAWS リージョン」の「」を参照してください。このセクションのこれ以降の部分では、リージョンに設定する方法を最も一般的な方法から説明します。

共有 config ファイルでリージョンを設定する。

共有 AWS configファイルに region変数を設定して、リージョンを設定します。共有configファイルの詳細については、「」および「ツールリファレンスガイド」の「共有設定ファイルと認証情報ファイル」を参照してください。 AWS SDKs

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 でのリージョンの設定

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

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 SDKs「ツールリファレンスガイド」の「サービス固有のエンドポイント設定オプション」を参照してください。