ロール認証情報プロバイダーを引き受けます - AWS SDKsとツール

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

ロール認証情報プロバイダーを引き受けます

注記

設定ページのレイアウトを理解したり、以下の AWS SDK とツールによるサポートの表を解釈したりするには、「このガイドの設定ページについて」を参照してください。

ロールでは、他の方法ではアクセスできない AWS リソースへのアクセスに、一時的なセキュリティ認証情報のセットを使用する必要があるとします。これらの一時的な認証情報は、アクセスキー ID、シークレットアクセスキー、およびセキュリティトークンで構成されています。

ロールを引き受けるように SDK またはツールを設定するには、まず引き受けるのための特定のロールを作成または特定する必要があります。IAM ロールは、ロール (Amazon リソースネーム (「ARN」 )で一意に識別されます。ロールは別のエンティティとの信頼関係を確立します。ロールを使用する信頼できるエンティティは AWS のサービス 、別の AWS アカウント 、ウェブ ID プロバイダーまたはOIDC、または SAML フェデレーションである可能性があります。

IAM ロールが特定されると、そのロールから信頼されている場合は、そのロールによって付与された権限を使用するように SDK またはツールを設定できます。これを行うには、次のコマンドを使用します。

これらの設定の使用を開始するためのガイダンスについては、このガイドの「AWS 認証情報を持つロールを引き受けて AWS SDK とツールを認証する」を参照してください。

ロール認証情報プロバイダーを引き受けます

この機能を設定するには、以下のように使用します。

credential_source-AWS config 共有ファイル設定

Amazon EC2 インスタンスまたは Amazon Elastic Container Service のコンテナ内で使用され、role_arn パラメータで指定したロールを引き受けるために使用する認証情報を SDK またはツールが検索できる場所を指定します。

デフォルト値: なし

有効な値:

credential_sourcesource_profile の両方を同じプロファイルで指定することはできません。

認証情報を Amazon EC2 から取得する必要があることを示すために、config ファイルにこれを設定する例を以下に示します。

credential_source = Ec2InstanceMetadata role_arn = arn:aws:iam::123456789012:role/my-role-name
duration_seconds-AWS config 共有ファイル設定

ロールセッションの最大期間を秒単位で指定します。

この設定は、プロファイルがロールの継承を指定している場合にのみ適用されます。

デフォルト値: 3600 秒 (1 時間) です

有効な値: この値は 900 秒 (15 分) からロールの最大セッション期間設定 (上限は 43200、すなわち12時間) までの範囲を指定できます。詳細については、「IAM ユーザーガイド」の「ロールの最大セッション期間設定を表示する」 を参照してください。

config ファイルにこれを設定する例を以下に示します。

duration_seconds = 43200
external_id - AWS config 共有ファイル設定

お客様のアカウントでサードパーティーがロールを引き受けるために使用される独自の識別子を指定します。

この設定は、プロファイルが役割を引き受けるように指定していて、その役割の信頼ポリシーで ExternalId の値が必要な場合にのみ適用されます。この値は、プロファイルがロールを指定するときに AssumeRole 操作に渡される ExternalId パラメータにマップされます。

デフォルト値: NONE。

有効な値:IAM ユーザーガイド」の「AWSリソースへのアクセス権を第三者に付与するときに外部 ID を使用する方法」を参照してください。

config ファイルにこれを設定する例を以下に示します。

external_id = unique_value_assigned_by_3rd_party
mfa_serial - AWS config 共有ファイル設定

ロールを引き受けるときに使用する必要がある多要素認証 (MFA) デバイスの ID もしくはシリアル番号を指定します。

ロールの信頼ポリシーに MFA 認証を必要とする条件が含まれているロールを引き受ける場合に必要です。MFA の詳細については、「IAM ユーザーガイド」の「IAM の AWS 多要素認証」を参照してください。

デフォルト値: なし。

有効な値: 値には、ハードウェアデバイスのシリアルナンバー (GAHT12345678など) または仮想 MFA デバイス (など) の Amazon リソースネーム (ARN) のいずれか指定できます。ARN の形式は以下のようになります。arn:aws:iam::account-id:mfa/mfa-device-name

config ファイルにこれを設定する例を以下に示します。

この例では、アカウント用に作成され、ユーザーに対して有効になっている MyMFADevice という仮想 MFA デバイスを想定しています。

mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
role_arn - AWS config 共有ファイル設定
AWS_ROLE_ARN - 環境変数
aws.roleArn - JVM システムプロパティ: Java/Kotlin のみ

このプロファイルを使用してリクエストされた操作の実行に使用する IAM ロールの Amazon リソースネーム (ARN) を指定します。

デフォルト値: なし。

有効な値: 値は、以下の arn:aws:iam::account-id:role/role-name 形式の IAM ロールの ARN である必要があります。

さらに、以下の設定のいずれかを指定する必要があります。

  • source_profile — そのプロファイルでその役割を引き受ける権限を持つ認証情報を検索するために使用する別のプロファイルを識別する。

  • credential_source — 現在の環境変数で識別される認証情報、または Amazon EC2 インスタンスプロファイルに添付されている認証情報、または Amazon ECS コンテナインスタンスを使用する。

  • web_identity_token_file — モバイルまたはウェブアプリケーションで認証されたユーザーにパブリックOpenID Connect (OIDC) 互換の ID プロバイダーを使用する。

role_session_name - AWS config 共有ファイル設定
AWS_ROLE_SESSION_NAME - 環境変数
aws.roleSessionName - JVM システムプロパティ: Java/Kotlin のみ

ロールセッションにアタッチする名前を指定します。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。詳細については、「AWS CloudTrail ユーザーガイド」の「CloudTrail userIdentity element」を参照してください。

デフォルト値:オプションパラメータ。この値を指定しない場合、セッション名は自動的に生成されます。

有効な値: AWS CLI または AWS API コールがユーザーに代わって AssumeRole オペレーション (または AssumeRoleWithWebIdentity オペレーションなどのオペレーション)を呼び出すときに RoleSessionName パラメータに提供されます。この値は、クエリ可能な想定ロールユーザーの Amazon リソースネーム (ARN) の一部になり、このプロファイルによって呼び出されるオペレーションの CloudTrail ログエントリの一部として表示されます。

arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name.

config ファイルにこれを設定する例を以下に示します。

role_session_name = my-role-session-name
source_profile - AWS config 共有ファイル設定

元のプロファイル内の role_arn 設定で指定されたロールを継承するために使用される認証情報の別のプロファイルを指定します。AWS configcredentials の共有ファイルでのプロファイルの使用方法については、「共有 config および credentials ファイル」を参照してください。

ロール引き受けプロファイルでもあるプロファイルを指定すると、認証情報が完全に解決されるように、各ロールが順番に引き継がれます。SDK が認証情報を含むプロファイルに遭遇すると、このチェーンは停止します。ロールのチェーニングでは、AWS CLI または AWS API ロールセッションは最長 1 時間に制限され、延長できません。詳細については、「IAM ユーザーガイド」 の「ロールの主な用語と概念」を参照してください。

デフォルト値: NONE。

有効な値: config および credentials ファイルで定義されているプロファイルの名前で構成されるテキスト文字列。現在のプロファイルの role_arn に対する値も指定する必要があります。

credential_sourcesource_profile の両方を同じプロファイルで指定することはできません。

設定ファイルでこれを設定する例:

[profile A] source_profile = B role_arn = arn:aws:iam::123456789012:role/RoleA role_session_name = ProfileARoleSession [profile B] credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID

前の例では、A プロファイルは SDK またはツールに、リンクされた B プロファイルの認証情報を自動的に検索するように指示します。この場合、B プロファイルは IAM Roles Anywhere を使用して AWS SDK とツールを認証する が提供する認証情報ヘルパーツールを使用して AWS SDK の認証情報を取得します。これらの一時的な認証情報は、次に AWS リソースへのアクセスに使用されます。指定されたロールには、リクエストされたコードが、コマンド、 AWS のサービス 、API メソッドなどの、実行を許可する IAM アクセス許可ポリシーがアタッチされている必要があります。プロファイル A によって実行されるすべてのアクションには、CloudTrail ログに含まれるロールセッション名が含まれます。

ロールチェーンの 2 番目の例では、Amazon Elastic Compute Cloud インスタンスにアプリケーションがあり、そのアプリケーションに別のロールを引き受けさせる場合、次の設定を使用できます。

[profile A] source_profile = B role_arn = arn:aws:iam::123456789012:role/RoleA role_session_name = ProfileARoleSession [profile B] credential_source=Ec2InstanceMetadata

プロファイル A は、Amazon EC2 インスタンスの認証情報を使用して指定されたロールを引き受け、認証情報を自動的に更新します。

web_identity_token_file - AWS config 共有ファイル設定
AWS_WEB_IDENTITY_TOKEN_FILE - 環境変数
aws.webIdentityTokenFile - JVM システムプロパティ: Java/Kotlin のみ

対応する OAuth 2.0 プロバイダー または、OpenID Connect ID 識別情報プロバイダー からのアクセストークンを含むファイルへのパスを指定します。

この設定により、「Google」 、「Facebook」 、「Amazon」 などの多数のウェブ ID フェデレーションプロバイダーを使用して認証を行うことができます。SDK または開発者ツールはこのファイルの内容をロードし、ユーザーに代わって AssumeRoleWithWebIdentity オペレーションを呼び出すときに WebIdentityToken 引数として渡します。

デフォルト値: NONE。

有効な値: この値はパスとファイル名でなければなりません。ファイルには、認識情報プロバイダーから提供される、OAuth 2.0 アクセストークンまたは OpenID Connect ID トークンが含まれていなければなりません。相対パスは、プロセスの作業ディレクトリを基準にした相対パスとして扱われます。

AWS SDK とツールによるサポート

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。

SDK サポート 注意または詳細情報
AWS CLI v2 あり
SDK for C++ 部分的 credential_source はサポートされていません。duration_seconds はサポートされていません。mfa_serial はサポートされていません。
SDK for Go V2 (1.x) あり
SDK for Go 1.x (V1) あり 共有 config ファイル設定を使用するには、設定ファイルからの読み込みを有効にする必要があります。「セッション」を参照してください。
SDK for Java 2.x 部分的 mfa_serial はサポートされていません。duration_seconds はサポートされていません。
SDK for Java 1.x 部分的 credential_source はサポートされていません。mfa_serial はサポートされていません。JVM システムプロパティはサポートされていません。
SDK for JavaScript 3.x あり
SDK for JavaScript 2.x 部分的 credential_source はサポートされていません。
SDK for Kotlin あり
SDK for .NET 4.x あり
SDK for .NET 3.x あり
SDK for PHP 3.x あり
SDK for Python (Boto3) あり
SDK for Ruby 3.x あり
SDK for Rust あり
SDK for Swift あり
Tools for PowerShell V5 あり
Tools for PowerShell V4 あり