ID プロバイダーとフェデレーション - AWS Identity and Access Management

ID プロバイダーとフェデレーション

既にユーザー ID を AWS の外で管理している場合、AWS アカウントに IAM ユーザーを作成する代わりに、ID プロバイダーを利用できます。ID プロバイダー (IdP) を使用すると、AWS の外部のユーザー ID を管理して、これらの外部ユーザー ID にアカウント内の AWS リソースに対するアクセス許可を与えることができます。これは、会社に既に企業ユーザーディレクトリなどの独自の ID システムがある場合に便利です。また、AWS リソースへのアクセスが必要なモバイルアプリやウェブアプリケーションを作成する場合にも便利です。

外部 IdP は、OpenID Connect (OIDC) または SAML 2.0 (Security Assertion Markup Language 2.0) のいずれかを使用して ID 情報を AWS に提供します。OIDC は、GitHub Actions など、AWS 上で実行しないアプリケーションを AWS リソースに接続します。よく知られている SAML ID プロバイダーの例には、Shibboleth や Active Directory Federation Services があります。

注記

セキュリティ上のベストプラクティスとして、IAM で SAML フェデレーションを使用する代わりに、外部 SAML ID プロバイダーを使用して IAM Identity Center で人間ユーザーを管理することをお勧めします。IAM ユーザーが必要な特定の状況についての情報は、「IAMユーザー (ロールの代わりに) を作成する場合」を参照してください。

ID プロバイダーを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要がありません。IdP では、これらを行うための環境が用意されています。外部ユーザーは IdP を使用してサインインします。これらの外部 ID に、アカウントの AWS リソースを使用するアクセス許可を与えることができます。ID プロバイダーは、アクセスキーなどの長期的セキュリティ認証情報をアプリケーションに配布したり組み込んだりする必要がないので、AWS アカウントの安全性の維持に役立ちます。

このガイドでは IAM フェデレーションについて説明します。ユースケースによっては、IAM Identity Center や Amazon Cognito の方がサポートしやすいかもしれません。以下の概要と表は、ユーザーが AWS リソースへのフェデレーションアクセスを取得するために使用できる方法の概略を示しています。

アカウントの種類 アクセス管理の対象 サポートされている ID ソース

IAM Identity Center とのフェデレーション

AWS Organizations によって管理される複数のアカウント

ワークフォースの人間ユーザー

  • SAML 2.0

  • マネージド Active Directory

  • Identity Center ディレクトリ

IAM とのフェデレーション

単一のスタンドアロンアカウント

  • 短期間の小規模デプロイにおける人間ユーザー

  • マシンユーザー

  • SAML 2.0

  • OIDC

Amazon Cognito アイデンティティプールとのフェデレーション

すべて

リソースへのアクセスに IAM 認証を必要とするアプリのユーザー

  • SAML 2.0

  • OIDC

  • OAuth 2.0 ソーシャル ID プロバイダーの選択

IAM Identity Center とのフェデレーション

人間ユーザーの一元的なアクセス管理を行うには、IAM Identity Center を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。IAM Identity Center のユーザーには、AWS リソースへの短期的な認証情報が付与されます。Active Directory、外部 ID プロバイダー (IdP)、または IAM Identity Center のディレクトリを、AWS リソースへのアクセスを割り当てるユーザーおよびグループの ID ソースとして使用できます。

IAM Identity Center は、SAML (Security Assertion Markup Language) 2.0 との ID フェデレーションをサポートしています。これにより、AWS アクセスポータル内のアプリケーションの使用が許可されているユーザーに、フェデレーションシングルサインオンアクセスを提供します。それにより、ユーザーは、AWS Management Consoleやサードパーティー製アプリケーション (Microsoft 365、SAP Concur、Salesforce など) を含め、SAML をサポートするサービスへのシングルサインオンが可能になります。

IAM とのフェデレーション

IAM Identity Center で人間ユーザーを管理することを強くお勧めしますが、短期間の小規模デプロイでは、人間ユーザーのために IAM によるフェデレーションユーザーアクセスを有効にできます。IAM では、SAML 2.0 と Open ID Connect (OIDC) IdP を個別に使用し、アクセス制御にフェデレーションユーザー属性を使用することができます。IAM を使用すると、コストセンター、役職、ロケールなどのユーザー属性を IdP から AWS に渡し、これらの属性に基づいてきめ細かいアクセス権限を実装できます。

ワークロードとは、アプリケーションやバックエンドプロセスなど、ビジネス価値を提供するリソースやコードの集合体のことです。ワークロードでは、AWS サービス、アプリケーション、運用ツール、およびコンポーネントにリクエストを送信するために IAM ID が必要になる場合があります。これらの ID には、Amazon EC2 インスタンスや AWS Lambda 関数などの AWS 環境で実行中のマシンが含まれます。

また、アクセスを必要とする外部の関係者のマシン ID を管理することもできます。マシン ID へのアクセスを許可するには、IAM ロールを使用できます。IAM ロールは特定のアクセス許可を持ち、ロールセッションで一時的なセキュリティ認証情報に依存することで AWS にアクセスする方法を提供します。さらに、AWS 環境にアクセスする必要がある AWS の外部のマシンが含まれる場合もあります。AWS の外部で実行されるマシンには、IAM Roles Anywhere を使用できます。ロールの詳細については、「IAM ロール」をご参照ください。ロールを使用して AWS アカウント へのアクセス許可を委任する方法については「IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してください。

IdP を直接 IAM にリンクするには、ID プロバイダーエンティティを作成して、AWS アカウントと IdP の間に信頼関係を確立します。IAMは、OpenID Connect (OIDC) または SAML 2.0 (Security Assertion Markup Language 2.0) と互換性のある IdP をサポートします。これら IdP の AWS での使用についての詳細は、以下のセクションを参照してください。

Amazon Cognito アイデンティティプールとのフェデレーション

Amazon Cognito は、モバイルアプリやウェブアプリでユーザーを認証および承認したい開発者向けに設計されています。Amazon Cognito ユーザープールは、アプリにサインインおよびサインアップ機能を追加します。アイデンティティプールは、AWS で管理する保護されたリソースへのアクセス権をユーザーに付与する IAM 認証情報を提供します。アイデンティティプールは、AssumeRoleWithWebIdentity API オペレーションを通じて一時セッションの認証情報を取得します。

Amazon Cognito は、SAML と OpenID Connect をサポートする外部 ID プロバイダー、Facebook、Google、Amazon などのソーシャル ID プロバイダーと連携しています。アプリは、ユーザープールまたは外部 IdP を使用してユーザーをサインインさせ、IAM ロールのカスタマイズされた一時セッションを使用して、ユーザーに代わってリソースを取得できます。