翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 Security Token Service (AWS STS) からのウェブ ID トークン | ロール認証情報プロバイダーを引き受けます
|
Aws::AssumeRoleWebIdentityCredentials
|
AWS IAM Identity Center。 このガイドでは、AWS による SDK 認証 を参照してください。 | IAM Identity Center 認証情報プロバイダー | Aws::SSOCredentials |
信頼されたエンティティプロバイダー (AWS_ROLE_ARN など) このガイドでは、「AWS STS アクセストークンの作成」を参照してください。 |
ロール認証情報プロバイダーを引き受けます
|
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.config
に endpoint
エントリを追加してください。または、サービスクライアントまたはリソースオブジェクトを作成するときに endpoint:
を設定します。次の例では、other_endpoint
エンドポイントに Amazon S3 リソースオブジェクトを作成します。
s3 = Aws::S3::Resource.new(endpoint: other_endpoint)
API リクエストに選択したエンドポイントを使用し、その選択を永続化するには、「」およびAWS SDKs「ツールリファレンスガイド」の「サービス固有のエンドポイント設定オプション」を参照してください。