

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

# ウェブ ID または OpenID Connect でロールを引き受けて AWS SDKsとツールを認証する
<a name="access-assume-role-web"></a>

ロールでは、他の方法ではアクセスできない AWS リソースへのアクセスに、一時的なセキュリティ認証情報のセットを使用する必要があるとします。これらの一時的な認証情報は、アクセスキー ID、シークレットアクセスキー、およびセキュリティトークンで構成されています。 AWS Security Token Service (AWS STS) API リクエストの詳細については、「*AWS Security Token Service API リファレンス*」の「[アクション](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html)」を参照してください。

ロールを引き受けるように SDK またはツールを設定するには、まず引き受けるのための特定の*ロール*を作成または特定する必要があります。IAM ロールは、ロール (Amazon リソースネーム (「[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)」 )で一意に識別されます。ロールは別のエンティティとの信頼関係を確立します。ロールを使用する信頼できるエンティティは、ウェブ ID プロバイダーまたは OpenID Connect (OIDC)、または SAML フェデレーションである可能性があります。IAM ロールの詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

SDK で IAM ロールを設定した後、そのロールが ID プロバイダーを信頼するように設定されている場合は、一時的な AWS 認証情報を取得するために、そのロールを引き受けるように SDK をさらに設定できます。

**注記**  
可能な限りリージョンエンドポイントを使用し、 を設定することが AWS ベストプラクティスです[AWS リージョン](feature-region.md)。

## ウェブアイデンティティまたは OpenID Connect でのフェデレーション
<a name="webidentity"></a>

Login With Amazon、Facebook、Google などのパブリック ID プロバイダーの JSON ウェブトークン (JWTs) を使用して、 を使用して一時的な AWS 認証情報を取得できます`AssumeRoleWithWebIdentity`。使用方法によって、これらの JWT は ID トークンまたはアクセストークンと呼ばれます。EntraId や PingFederate などの OIDC の検出プロトコルと互換性のある ID プロバイダー (IdP) から発行された JWT を使用することもできます。

Amazon Elastic Kubernetes Service を使用している場合、この機能により、Amazon EKS クラスターのサービスアカウントごとに異なる IAM ロールを指定できます。この Kubernetes 機能はJWTs をポッドに配布します。ポッドは、一時的な AWS 認証情報を取得するためにこの認証情報プロバイダーによって使用されます。この Amazon EKS の設定の詳細については、「**Amazon EKS ユーザーガイド**」の「[サービスアカウントの IAM ロール](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)」を参照してください。ただし、より単純なオプションとして、[SDK がサポートしている](feature-container-credentials.md#feature-container-credentials-sdk-compat)場合は、代わりに [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) を利用することをお勧めします。

### ステップ 1: ID プロバイダーと IAM ロールを設定する
<a name="webidentity_step1"></a>

外部 IdP とのフェデレーションを設定するには、IAM ID プロバイダーを使用して、外部 IdP とその設定 AWS について に通知します。これにより、 AWS アカウント と外部 IdP 間の*信頼*が確立されます。認証のために JSON Web Token (JWT) を使用するように SDK を設定する前に、まず ID プロバイダー (IdP) と、それにアクセスするための IAM ロールを設定する必要があります。これらを設定するには、「*IAM ユーザーガイド*」の「[ウェブ OpenID Connect フェデレーション用のロールの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html)」 を参照してください。

### ステップ 2: SDK またはツールを設定する
<a name="webidentity_step2"></a>

 AWS STS 認証に からの JSON ウェブトークン (JWT) を使用するように SDK またはツールを設定します。

プロファイルでこれを指定すると、SDK またはツールは対応する AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API コールを自動的に実行します。ウェブ ID フェデレーションを使用して一時的な認証情報を取得して使用するには、共有 AWS `config`ファイルに次の設定値を指定します。これらの設定の詳細については、「[ロール認証情報プロバイダーを引き受けます](feature-assume-role-credentials.md#feature-assume-role-credentials-settings)」を参照してください。
+ `role_arn` - ステップ 1 で作成された IAM ロール
+ `web_identity_token_file`-外部 IdP から
+ (オプション) `duration_seconds`
+ (オプション) `role_session_name` 

ウェブ IDを使用してロールを引き受ける `config` 共有ファイル設定の例を次に示します。

```
[profile web-identity]
role_arn=arn:aws:iam::123456789012:role/my-role-name
web_identity_token_file=/path/to/a/token
```

**注記**  
モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行います。ただし、Amazon Cognito ID プロバイダーは、他の ID プロバイダーのように SDK やツールのコアライブラリには含まれていません。Amazon Cognito API にアクセスするには、SDK またはツールのビルドまたはライブラリに Amazon Cognito サービスクライアントを含めてください。 AWS SDKs*Amazon Cognito デベロッパーガイド*」の[「コード例](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html)」を参照してください。

すべての引き受けロールの認証情報プロバイダーの設定の詳細については、このガイドの「[ロール認証情報プロバイダーを引き受けます](feature-assume-role-credentials.md)」を参照してください。