ID プロバイダーとフェデレーション
ベストプラクティスとして、AWS アカウント内に個別に IAM ユーザーを作成するのではなく、ID プロバイダーとのフェデレーションを使用して AWS リソースにアクセスするように人間のユーザーに求めることをお勧めします。ID プロバイダー (IdP) を使用すると、AWS の外部のユーザー ID を管理して、これらの外部ユーザー ID にアカウント内の AWS リソースに対するアクセス許可を与えることができます。これは、会社に既に企業ユーザーディレクトリなどの独自の ID システムがある場合に便利です。また、AWS リソースへのアクセスが必要なモバイルアプリやウェブアプリケーションを作成する場合にも便利です。
注記
また、IAM で SAML フェデレーションを使用するのではなく、外部 SAML ID プロバイダーを使用して IAM アイデンティティセンターで人間ユーザーを管理することもできます。IAM アイデンティティセンターを ID プロバイダーとフェデレーションすると、組織内の複数の AWS アカウントと複数の AWS アプリケーションへのアクセスをユーザーに付与できるようになります。IAM ユーザーが必要な特定の状況についての情報は、「IAMユーザー (ロールの代わりに) を作成する場合」を参照してください。
IAM アイデンティティセンターを有効にすることなく AWS アカウントを 1 つだけ使用する場合は、OpenID Connect (OIDC)
ID プロバイダーを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要がありません。IdP では、これらを行うための環境が用意されています。外部ユーザーは IdP を使用してサインインします。これらの外部 ID に、アカウントの AWS リソースを使用するアクセス許可を与えることができます。ID プロバイダーは、アクセスキーなどの長期的セキュリティ認証情報をアプリケーションに配布したり組み込んだりする必要がないので、AWS アカウントの安全性の維持に役立ちます。
以下の表に、IAM フェデレーションタイプを示します。IAM、IAM アイデンティティセンター、Amazon Cognito のうち、どのタイプが自分のユースケースに最善であるか確認してください。以下の概要と表は、ユーザーが AWS リソースへのフェデレーションアクセスを取得するために使用できる方法の概略を示しています。
IAM フェデレーションタイプ | アカウントの種類 | アクセス管理の対象 | サポートされている ID ソース |
---|---|---|---|
IAM Identity Center とのフェデレーション |
AWS Organizations によって管理される複数のアカウント |
ワークフォースの人間ユーザー |
|
IAM とのフェデレーション |
単一のスタンドアロンアカウント |
|
|
Amazon Cognito アイデンティティプールとのフェデレーション |
すべて |
リソースへのアクセスに IAM 認可を必要とするアプリのユーザー |
|
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)
Amazon Cognito アイデンティティプールとのフェデレーション
Amazon Cognito は、モバイルアプリやウェブアプリでユーザーを認証および認可したい開発者向けに設計されています。Amazon Cognito ユーザープールは、アプリにサインインおよびサインアップ機能を追加します。アイデンティティプールは、AWS で管理する保護されたリソースへのアクセス権をユーザーに付与する IAM 認証情報を提供します。アイデンティティプールは、AssumeRoleWithWebIdentity
API オペレーションを通じて一時セッションの認証情報を取得します。
Amazon Cognito は、SAML と OpenID Connect をサポートする外部 ID プロバイダー、Facebook、Google、Amazon などのソーシャル ID プロバイダーと連携しています。アプリは、ユーザープールまたは外部 IdP を使用してユーザーをサインインさせ、IAM ロールのカスタマイズされた一時セッションを使用して、ユーザーに代わってリソースを取得できます。
追加リソース
-
組織の認証システムを使用して AWS Management Console へのシングルサインオン (SSO) を有効にするカスタムフェデレーションプロキシを作成する方法のデモンストレーションについては、「AWS コンソールへのカスタム ID ブローカーアクセスを有効にする」を参照してください。