IAM で OpenID Connect (OIDC) ID プロバイダーを作成する - AWS Identity and Access Management

IAM で OpenID Connect (OIDC) ID プロバイダーを作成する

IAM OIDC ID プロバイダーOpenID Connect (OIDC) 標準 (例: Google または Salesforce) をサポートする ID プロバイダー (IdP) サービスを表す IAM のエンティティです。OIDC 互換 IdP と AWS アカウント の間で信頼性を確立するときに IAM OIDC ID プロバイダーを使用します。このプロバイダーは、AWS リソースへのアクセスを必要とするモバイルアプリやウェブアプリケーションを作成するときに、カスタムサインインコードの作成や独自のユーザー ID の管理をしない場合に役立ちます。このシナリオの詳細については、「OIDC フェデレーション」を参照してください。

AWS Management Console、AWS Command Line Interface、Tools for Windows PowerShell、または IAM API を使用して、IAM OIDC ID プロバイダーを作成および管理できます。

IAM OIDC ID プロバイダーを作成したら、1 つ以上の IAM ロールを作成する必要があります。ロールは AWS のアイデンティティであり、それ自体には (ユーザーのような) 認証情報がありません。しかし、この例で、ロールが動的に割り当てられるフェデレーティッドユーザーは、組織の IdP から認証されます。このロールで、組織の IdP が AWS にアクセスするための一時的なセキュリティ認証情報をリクエストできるようにします。ロールに割り当てられているポリシーは、フェデレーティッドユーザーが AWS で実行できることを決定します。サードパーティー ID プロバイダーのロールを作成するには、「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」をご参照ください。

重要

oidc-provider リソースをサポートするアクションの ID ベースのポリシーを設定する場合は、IAM は指定されたパスを含む OIDC ID プロバイダーの完全な URL を評価します。OIDC ID プロバイダーの URL にパスがある場合は、そのパスを oidc-provider ARN に Resource 要素の値として含める必要があります。URL ドメインにフォワードスラッシュおよびワイルドカード (/*) を追加することもできます。または、URL パスの任意の時点でワイルドカード文字 (* および ?) は任意の時点で使用します。リクエスト内の OIDC ID プロバイダー URL がポリシーの Resource 要素で設定されている値と一致しない場合、リクエストは失敗します。

OIDC プロバイダーの作成と管理 (コンソール)

AWS Management Console で IAM OIDC ID プロバイダーを作成および管理するには、次の手順に従います。

重要

Google、Facebook、または Amazon Cognito の OIDC ID プロバイダーを使用している場合は、この手順を使用して別の IAM ID プロバイダーを作成しないでください。これらの OIDC ID プロバイダーは、AWS にすでに組み込まれており、使用できます。代わりに、「OpenID Connect フェデレーション用のロールを作成する (コンソール)」の手順に従って ID プロバイダーの新しいロールを作成します。

IAM OIDC ID プロバイダーを作成するには (コンソール)
  1. IAM OIDC ID プロバイダーを作成する前に、アプリケーションを IdP に登録してクライアント ID を受け取る必要があります。クライアント ID (対象者とも呼ばれます) は、アプリを IdP に登録したときに発行されるアプリの一意の識別子です。クライアント ID を取得する方法の詳細については、IdP のドキュメントを参照してください。

    注記

    AWS は、IdP サーバー証明書を検証する証明書のサムプリントを使用する代わりに、信頼されたルート証明機関 (CA) のライブラリを介して一部の OIDC ID プロバイダ (IdP) との通信を保護します。このような場合、従来のサムプリントは設定に残りますが、検証には使用されなくなります。これらの OIDC IdP には、Auth0、GitHub、GitLab、Google に加えて、Amazon S3 バケットを使用して JSON ウェブキーセット (JWKS) エンドポイントをホストするものが含まれます。

  2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  3. ナビゲーションペインで、[Identity providers] (ID プロバイダ) を選択し、[Add provider] (プロバイダを追加) を選択します。

  4. [Configure provider] (プロバイダーの設定) で、[OpenID Connect] を選択します。

  5. [プロバイダーの URL] には IdP の URL を入力します。URL は次の制限に準拠する必要があります。

    • URL では大文字と小文字は区別されます。

    • URL は https:// で始まる必要があります。

    • URL にポート番号を含めることはできません。

    • AWS アカウント 内で、各 IAM OIDC ID プロバイダーは一意の URL を使用する必要があります。

  6. [Get thumbprint] (サムプリントを取得) を選択して、IdP のサーバー証明書を検証します。この方法の詳細は、OpenID Connect ID プロバイダーのサムプリントを取得するを参照してください。

    注記

    OIDC ID プロバイダーの証明書チェーンは、ドメインまたは発行者の URL で始まり、中間証明書が続いた後、ルート証明書で終わる必要があります。証明書チェーンの順序が異なる場合、または証明書の重複や追加が含まれる場合は、署名の不一致エラーが表示され、STS は JSON ウェブトークン (JWT) の検証に失敗します。エラーを解決するには、サーバーから返されたチェーン内の証明書の順序を修正します。証明書チェーン標準の詳細については、RFC Series ウェブサイトの RFC 5246 の certificate_list を参照してください。

  7. [対象者] には、IdP に登録して ステップ 1 で受け取ったアプリケーションのクライアント ID を入力します。このアプリケーションは AWS に対するリクエストを実行します。この IdP のクライアント ID (対象者) が他にも存在する場合は、後でプロバイダーの詳細ページで追加できます。

  8. (オプション) [Add tags (タグの追加)] では、キーバリューのペアを追加して IdP の特定と整理を行うことができます。タグを使用して、AWS リソースへのアクセスを制御することもできます。IAM OIDC ID プロバイダーのタグ付けの詳細については、「OpenID Connect (OIDC) ID プロバイダーのタグ付け」を参照してください。タグを追加 を選択します。タグキーバリューのペアごとに値を入力します。

  9. 入力した情報を確認します。完了したら、[Add provider] (プロバイダーを追加) を選択します。

  10. ID プロバイダーに IAM ロールを割り当てて、ID プロバイダーによって管理される外部ユーザー ID にアカウント内の AWS リソースへのアクセス許可を与えます。ID フェデレーション用のロールの作成の詳細については、「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」をご参照ください。

    注記

    ロール信頼ポリシーで使用される OIDC IdP は、そのロール信頼ポリシーを信頼するロールと同じアカウントにある必要があります。

IAM OIDC ID プロバイダーのサムプリントを追加または削除するには (コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Identity providers (ID プロバイダ)] を選択します。その後、更新する IAM ID プロバイダーの名前を選択します。

  3. [Thumbprints] (サムプリント) セクションで、[Manage] (管理) を選択します。新しいサムプリント値を入力するには、[Add thumbprint] (サムプリントを追加) を選択します。サムプリントを削除するには、削除するサムプリントの横にある [Remove] (削除) を選択します。

    注記

    IAM OIDC ID プロバイダーには少なくとも 1 つのサムプリントが必要であり、最大 5 つのサムプリントを指定できます。

    完了したら、[Save changes] (変更を保存) を選択します。

IAM OIDC ID プロバイダーの対象者を追加するには (コンソール)
  1. ナビゲーションペインで、[Identity providers] (ID プロバイダー) を選択し、更新する IAM ID プロバイダーの名前を選択します。

  2. [Audiences] (対象者) セクションで [Actions] (アクション) を選択し、[Add audience] (対象者を追加) を選択します。

  3. IdP に登録して ステップ 1 で受け取ったアプリケーションのクライアント ID を入力します。このアプリケーションは AWS に対するリクエストを実行します。その後、[Add audiences] (対象者を追加) を選択します。

    注記

    IAM OIDC ID プロバイダーには少なくとも 1 名の閲覧者が必要であり、最大 100 名まで指定できます。

IAM OIDC ID プロバイダーの対象者を削除するには (コンソール)
  1. ナビゲーションペインで、[Identity providers] (ID プロバイダー) を選択し、更新する IAM ID プロバイダーの名前を選択します。

  2. [Audiences] (対象者) セクションで、削除する対象者の横にあるラジオボタンを選択し、[Actions] (アクション) を選択します。

  3. [Remove audience] (対象者を削除) を選択します。新しいウィンドウが開きます。

  4. 対象者を削除すると、対象者とフェデレートする ID は対象者に関連付けられたロールを引き受けることができません。ウィンドウで、警告を読み、フィールドに単語 remove を入力して対象者を削除することを確認します。

  5. 対象者を削除するには、[Remove] (削除) を選択します。

IAM OIDC ID プロバイダーを削除するには (コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[Identity providers (ID プロバイダ)] を選択します。

  3. 削除する IAM ID プロバイダーの横にあるチェックボックスをオンにします。新しいウィンドウが開きます。

  4. フィールドに単語 delete を入力して、プロバイダーを削除することを確認します。その後、[Delete] (削除) をクリックします。

IAM OIDC ID プロバイダーの作成と管理 (AWS CLI)

以下の AWS CLI コマンドを使用して IAM OIDC ID プロバイダーを作成および管理できます。

IAM OIDC ID プロバイダーを作成するには (AWS CLI)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーを一覧表示するには、次のコマンドを実行します。

  2. 新しい IAM OIDC ID プロバイダーを作成するには、次のコマンドを実行します。

既存の IAM OIDC ID プロバイダー (AWS CLI) のサーバー証明書のサムプリントのリストを更新するには
既存の IAM OIDC ID プロバイダー (AWS CLI) にタグを付けるには
既存の IAM OIDC ID プロバイダー (AWS CLI) のタグを一覧表示するには
IAM OIDC ID プロバイダー (AWS CLI) のタグを削除するには
既存のIAM OIDC ID プロバイダーのクライアント ID を追加または削除するには (AWS CLI)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーのリストを取得するには、次のコマンドを実行します。

  2. (オプション) IAM OIDC ID プロバイダーの詳細情報を取得するには、次のコマンドを実行します。

  3. 既存の IAM OIDC ID プロバイダーに新しいクライアント ID を追加するには、次のコマンドを実行します。

  4. 既存の IAM OIDC ID プロバイダーからクライアント ID を削除するには、次のコマンドを実行します。

IAM OIDC ID プロバイダーを削除するには (AWS CLI)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーのリストを取得するには、次のコマンドを実行します。

  2. (オプション) IAM OIDC ID プロバイダーの詳細情報を取得するには、次のコマンドを実行します。

  3. IAM OIDC ID プロバイダーを削除するには、次のコマンドを実行します。

OIDC ID プロバイダーの作成と管理 (AWS API)

以下の IAM API コマンドを使用して OIDC プロバイダーを作成および管理できます。

IAM OIDC ID プロバイダーを作成するには (AWS API)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーのリストを取得するには、次のオペレーションを呼び出します。

  2. 新しい IAM OIDC ID プロバイダーを作成するには、次のオペレーションを呼び出します。

既存の IAM OIDC ID プロバイダーのサーバー証明書のサムプリントのリストを更新するには (AWS API)
  • IAM OIDC ID プロバイダーのサーバー証明書のサムプリントのリストを更新するには、次のオペレーションを呼び出します。

既存の IAM OIDC ID プロバイダーにタグを付けるには (AWS API)
  • 既存の IAM OIDC ID プロバイダーにタグを付けるには、次のオペレーションを呼び出します。

既存の IAM OIDC ID プロバイダーのタグを一覧表示するには (AWS API)
  • 既存の IAM OIDC ID プロバイダーのタグを一覧表示するには、次のオペレーションを呼び出します。

既存の IAM OIDC ID プロバイダーのタグを削除するには (AWS API)
  • 既存の IAM OIDC ID プロバイダーのタグを削除するには、次のオペレーションを呼び出します。

既存の IAM OIDC ID プロバイダーのクライアント ID を追加または削除するには (AWS API)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーのリストを取得するには、次のオペレーションを呼び出します。

  2. (オプション) IAM OIDC ID プロバイダーの詳細情報を取得するには、次のオペレーションを呼び出します。

  3. 既存の IAM OIDC ID プロバイダーに新しいクライアント ID を追加するには、次のオペレーションを呼び出します。

  4. 既存の IAM OIDC ID プロバイダーからクライアント ID を削除するには、次のオペレーションを呼び出します。

IAM OIDC ID プロバイダーを削除するには (AWS API)
  1. (オプション) AWS アカウントのすべての IAM OIDC ID プロバイダーのリストを取得するには、次のオペレーションを呼び出します。

  2. (オプション) IAM OIDC ID プロバイダーの詳細情報を取得するには、次のオペレーションを呼び出します。

  3. IAM OIDC ID プロバイダーを削除するには、次のオペレーションを呼び出します。