IAM Roles Anywhere を使用して AWS SDK とツールを認証する
IAM Roles Anywhere を使用すると、サーバー、コンテナ、アプリケーションなど、AWS の外部で実行されるワークロードに関する一時的なセキュリティ認証情報を IAM で取得することができます。IAM Roles Anywhere を使用するには、ワークロードで X.509 証明書を使用する必要があります。IAM Roles Anywhere を認証情報プロバイダーとして設定するのに必要な証明書とプライベートキーは、クラウド管理者が提供する必要があります。
ステップ 1:IAM Roles Anywhere を設定します
IAM Roles Anywhere は、AWS の外部で実行されるワークロードまたはプロセスの一時的な認証情報を取得する方法を提供します。認証機関との間でトラストアンカーが確立され、関連する IAM ロールの一時的な認証情報を取得できます。このロールは、コードが IAM Roles Anywhere で認証されるときにワークロードが持つアクセス許可を設定します。
トラストアンカー、IAM ロール、IAM Roles Anywhere プロファイルを設定する手順については、「IAM Roles Anywhere ユーザーガイド」の「AWS Identity and Access Management Roles Anywhere でトラストアンカーとプロファイルの作成」を参照してください。
注記
「IAM Roles Anywhere ユーザーガイド」のプロファイルは、IAM Roles Anywhere サービス内の独特の概念を指しています。共有 AWS config ファイル内のプロファイルとは関係ありません。
ステップ 2:IAM Roles Anywhere の使用
IAM Roles Anywhere から一時的なセキュリティ認証情報を取得するには、IAM Roles Anywhere にある認証情報ヘルパーツールを使用してください。この認証情報ツールは IAM Roles Anywhere の署名プロセスを実装します。
認証情報ヘルパーツールをダウンロードする手順については、「IAM Roles Anywhere ユーザーガイド」の「AWS Identity and Access Management Roles Anywhere からの一時的なセキュリティ認証情報の取得」を参照してください。
IAM Roles Anywhere の一時的なセキュリティ認証情報を AWS SDK と AWS CLI で使用するには、共有 AWS config ファイルに credential_process 設定を設定できます。SDK と AWS CLI は、認証に credential_process を使用するプロセス認証情報プロバイダーをサポートします。credential_process を設定する一般的な構造を以下に示します。
credential_process = [path to helper tool] [command] [--parameter1value] [--parameter2value] [...]
ヘルパーツールの credential-process コマンドは、credential_process 設定と互換性のある標準 JSON 形式で一時的な認証情報を返します。コマンド名にはハイフンが含まれていますが、設定名にはアンダースコアが含まれていることに注意してください。コマンドには以下のパラメータが必要となります。
-
private-key– リクエストに署名したプライベートキーへのパス。 -
certificate– 証明書へのパス。 -
role-arn– 一時的な認証情報を取得するロールの ARN。 -
profile-arn– 指定されたロールのマッピングを行うプロファイルの ARN。 -
trust-anchor-arn– 認証に使用するトラストアンカーの ARN。
クラウド管理者は、証明書とプライベートキーを提供する必要があります。3 つの ARN 値はすべて AWS マネジメントコンソール からコピーできます。次の例は、ヘルパーツールから一時的な認証情報を取得するように設定した共有 config ファイルを示しています。
[profiledev] credential_process = ./aws_signing_helper credential-process --certificate/path/to/certificate--private-key/path/to/private-key--trust-anchor-arnarn:aws:rolesanywhere:region:account:trust-anchor/TA_ID--profile-arnarn:aws:rolesanywhere:region:account:profile/PROFILE_ID--role-arnarn:aws:iam::account:role/ROLE_ID
オプションのパラメータとその他のヘルパーツールの詳細については、GitHub の「IAM Roles Anywhere 認証情報ヘルパー
SDK 設定自体とプロセス認証情報プロバイダーの詳細については、このガイドの「プロセス認証情報プロバイダー」を参照してください。