0Pricing
Cloud & IT Cert Prep · レッスン

SAML、OIDC、Web Identity Federation

外部のアイデンティティプロバイダーやアプリのログインをAWSに接続します。

「SAML、OIDC、Web Identity Federation」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

フェデレーションとは

フェデレーションを使用すると、AWS の外部で定義されたアイデンティティが、IAM ユーザーを作成することなくサインインし、AWS の権限を取得できます。

外部のアイデンティティプロバイダー(IdP)がユーザーを認証し、AWS はそのアサーションを信頼して一時的な認証情報を発行します。これによりアカウントの重複を避け、既存のディレクトリを信頼できる情報源として維持できます。

SAML 2.0フェデレーション

SAML(Security Assertion Markup Language)2.0は、エンタープライズフェデレーションで長く使われている標準規格です。

  • IAMにIdPをSAMLアイデンティティプロバイダーとして登録します。
  • ユーザーのログイン後、IdPは署名付きのアサーションを送信します。
  • AWSはそれをSTS経由で、一時的なロール認証情報と交換します。

Active Directory Federation Servicesや、同様の企業向けIdPで一般的に使われています。

OIDCフェデレーション

OIDC(OpenID Connect)は、OAuth 2.0を基盤とする最新のトークンベース標準です。

ワークロードとCI/CDシステムのフェデレーションに適しています。たとえば、GitHub ActionsのパイプラインはOIDCトークンを提示し、AWSは保存済みのキーを使わずにロールを引き受けられます。プロバイダーはIAMのOIDCアイデンティティプロバイダーとして登録します。

Webアイデンティティフェデレーション

Webアイデンティティフェデレーションを使うと、Google、Facebook、Amazonなどのパブリックプロバイダーでユーザーがサインインできます。モバイルアプリやWebアプリで一般的な方式です。

アプリはプロバイダーのトークンをAssumeRoleWithWebIdentity経由でSTSに渡し、ロールの範囲に限定された一時的な認証情報を受け取ります。ユーザーにIAMアイデンティティは必要ありません。

STSの役割

すべてのフェデレーション方式はSTS(Security Token Service)に集約されます。STSは、検証済みの外部アサーションを、IAMロールに紐付いた短期間有効なAWS認証情報と交換します。

  • SAMLではAssumeRoleWithSAMLを使用します。
  • OIDCとWebアイデンティティではAssumeRoleWithWebIdentityを使用します。

フェデレーションユーザーが実行できる操作は、ロールの権限によって決まります。

フェデレーション用の信頼ポリシー

フェデレーションユーザーが引き受けるIAMロールには、IdPをプリンシパルとして指定する信頼ポリシーがあります。

信頼ポリシーの条件によって、そのプロバイダーの誰がロールを引き受けられるかを制限できます。たとえば、特定のSAML属性やOIDCのsubクレームを照合します。これにより、広範なプロバイダーが全員にアクセスを許可してしまう事態を防げます。

{
  "Effect": "Allow",
  "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com" },
  "Action": "sts:AssumeRoleWithWebIdentity",
  "Condition": { "StringLike": { "token.actions.githubusercontent.com:sub": "repo:my-org/my-repo:*" } }
}

Identity Centerと従来のフェデレーションの比較

IAM Identity Centerは、洗練されたポータルと許可セットを備えた、ワークフォース向けのフェデレーションレイヤーです。

従来のIAM SAMLまたはOIDCプロバイダーは、より低レベルの構成要素です。そのため、アプリケーションとワークロードのフェデレーションや、レガシー環境に適しています。試験では、人間のSSOにはIdentity Center、パイプラインにはOIDCロールを選択することが求められます。

Amazon Cognitoアイデンティティプール

コンシューマー向けアプリでは、Amazon CognitoアイデンティティプールがWebアイデンティティフェデレーションを仲介します。

ソーシャルログインやユーザープールのログインを一時的なAWS認証情報と交換し、STSの呼び出しを内部で処理します。モバイルアプリでは、AssumeRoleWithWebIdentityを直接呼び出すよりも、この方法が推奨されます。

埋め込みキーを避ける

フェデレーションの目的は、アプリ、パイプライン、デバイスに長期的なキーを埋め込まないことです。

  • 漏えいした静的キーは、侵害の主な原因の一つです。
  • フェデレーショントークンは短期間だけ有効で、検証済みのアイデンティティに紐付いています。

シナリオにハードコードされたアクセスキーが登場したら、通常はフェデレーションが解決策です。

適切な標準の選択

接続元に合わせて標準を選択します。

  • 従来型のエンタープライズIdPやADにはSAML。
  • 最新のワークロードやCI/CDにはOIDC。
  • パブリックアプリのユーザーにはWebアイデンティティ / Cognito。

いずれも一時的な認証情報を提供しますが、主な違いはトークン形式と用途です。

フェデレーションアクセスの監査

フェデレーションセッションは、引き受けたロールのアイデンティティとフェデレーションイベントとともにCloudTrailに記録されます。

IAMユーザーが存在しない場合でも、どのIdPのどの外部ユーザーがアクションを開始したかを追跡でき、説明責任を維持できます。ロール名に一貫性を持たせると、ログがはるかに読みやすくなります。

クイックチェック

適切なフェデレーション方式を選択してください。

まとめ

フェデレーションの標準を比較しました。

  • エンタープライズIdPにはSAML、ワークロードにはOIDC、アプリユーザーにはWebアイデンティティ/Cognitoを使用します。
  • いずれも検証済みの外部アサーションをSTS経由で一時的なロール認証情報と交換します。
  • フェデレーションにより、長期的なキーを埋め込む必要がなくなります。

よくある質問

「SAML、OIDC、Web Identity Federation」レッスンは無料ですか?

はい。「SAML、OIDC、Web Identity Federation」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「SAML、OIDC、Web Identity Federation」で何を学びますか?

外部のアイデンティティプロバイダーやアプリのログインをAWSに接続します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「SAML、OIDC、Web Identity Federation」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. IAM Identity Centerによるシングルサインオン
  2. SAML、OIDC、Web Identity Federation
  3. クロスアカウントロールとリソースポリシー
  4. IAM Access Analyzerによる共有の監査
← Cloud & IT Cert Prepに戻る