IAM ID と認証情報を比較する
AWS Identity and Access Management で管理される ID は、IAM ユーザー、IAM ロール、IAM グループです。これらの ID は、AWS が AWS アカウント とともに作成したルートユーザーに追加的なものです。
日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことを強くお勧めします。代わりに、追加のユーザーをプロビジョニングし、必要なタスクを実行するために必要なアクセス許可を付与します。ユーザーを追加するには、IAM アイデンティティセンターディレクトリに人々を追加するか、IAM アイデンティティセンターまたは IAM で外部 ID プロバイダーをフェデレーションするか、最小特権の IAM ユーザーを作成します。
セキュリティを強化するために、AWS Organizations を使用して管理される AWS アカウント のルートユーザー認証情報を一元的に保護するのに役立つよう、ルートアクセスを一元化することをお勧めします。メンバーアカウントのルートアクセスを一元管理 を使用すると、長期的なルートユーザー認証情報を一元的に削除して、そのリカバリを防止し、意図しないルートアクセスを大規模に防止できます。一元化されたルートアクセスを有効にすると、特権セッションを引き受けてメンバーアカウントでアクションを実行できます。
ユーザーのセットアップ後、特定のユーザーに AWS アカウント へのアクセス権を付与し、そのユーザーにリソースへのアクセス許可を与えることができます。
ベストプラクティスとして、AWS では、人間のユーザーが一時的な認証情報を使用するように、IAM ロールを引き受けて AWS にアクセスすることを推奨しています。IAM Identity Center ディレクトリで ID を管理している場合、または ID プロバイダーとのフェデレーションを使用している場合は、ベストプラクティスに従っています。
用語
これらの用語は、IAM ID と連携する際によく使用されます。
- IAM リソース
-
IAM サービスはこれらのリソースを保存します。コンソールから、追加、編集、削除できます。
-
IAM ユーザー
-
IAM グループ
-
IAM ロール
-
アクセス許可ポリシー
-
ID プロバイダーオブジェクト
-
- IAM エンティティ
-
AWS が認証に使用する IAM リソース。リソースベースのポリシーで、エンティティをプリンシパルとして指定します。
-
IAM ユーザー
-
IAM ロール
-
- IAM ID
-
アクションの実行とリソースへのアクセスを行うためにポリシーで認可される IAM リソース。アイデンティティには、IAM ユーザー、IAM グループ、および IAM ロールが含まれます。
- プリンシパル
-
AWS リソースに対するアクションまたはオペレーションをリクエストできる AWS アカウントのルートユーザー、IAM ユーザー、または IAM ロール。プリンシパルには、人間のユーザー、ワークロード、フェデレーティッドプリンシパル、引き受けたロールが含まれます。認証後、IAM は、プリンシパルのタイプに応じて、AWS にリクエストを実行するための永続的または一時的な認証情報をプリンシパルに付与します。
人間のユーザーとは、人間 ID とも呼ばれ、人々、管理者、デベロッパー、オペレーター、およびアプリケーションのコンシューマーなどをいいます。
ワークロードとは、アプリケーション、プロセス、運用ツール、他のコンポーネントなど、ビジネス価値を提供するリソースとコードのコレクションをいいます。
フェデレーティッドプリンシパルとは、ID および認証情報が Active Directory、Okta、Microsoft Entra などの別の ID プロバイダーによって管理されているユーザーを指します。
IAM ロールとは、ユーザーがアカウントで作成できる IAM ID をいい、その ID が実行できることとできないことを決定する特定の許可を持ちます。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。
IAM は、IAM ユーザーとルートユーザーに長期的な認証情報を付与し、IAM ロールには一時的な認証情報を付与します。AWS IAM アイデンティティセンターのユーザー、OIDC、SAML のフェデレーティッドプリンシパルは、AWS にサインインする際に IAM ロールを引き受けます。これにより、一時的な認証情報が付与されます。ベストプラクティスとして、人間のユーザーとワークロードに一時的な認証情報を使用して AWS のリソースにアクセスさせることをお勧めします。
IAM アイデンティティセンターの IAM ユーザーとユーザーの違い
IAM ユーザーは個別のアカウントではなく、アカウント内の個別のユーザーです。各ユーザーには、AWS マネジメントコンソール にアクセスするための独自のパスワードがあります。また各ユーザーには、お客様のアカウントのリソースをプログラムによりリクエストできるように、個別のアクセスキーを作成できます。
IAM ユーザーとそのアクセスキーには、AWS リソースへの長期的な認証情報が付与されています。IAM ユーザーは主に、IAM ロールを使用できないワークロードに AWS のサービスに対して API または CLI を使用したプログラムによるリクエストを可能にする場合に使用します。
注記
プログラムによるアクセスや長期的な認証情報を持つ IAM ユーザーが必要なシナリオでは、必要な時にアクセスキーを更新することをお勧めします。詳細については、「アクセスキーを更新する」を参照してください。
ワークフォース ID (人々) とは、実行しているロールに応じて異なる許可のニーズを持ち、組織全体のさまざまな で作業できる AWS IAM アイデンティティセンターのユーザーAWS アカウント をいいます。アクセスキーを必要とするユースケースがある場合は、AWS IAM アイデンティティセンターのユーザー でそれらのユースケースをサポートできます。AWS アクセスポータルを通じてサインインする人々は、AWS リソースへの短期的な認証情報を使用してアクセスキーを取得できます。一元的なアクセス管理を行うには、AWS IAM アイデンティティセンター (IAM Identity Center) を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。IAM アイデンティティセンターは、デフォルトの ID ソースとして アイデンティティセンターディレクトリで自動的に設定され、人々やグループを追加し、AWS リソースへのアクセスレベルを割り当てることができます。詳細については、AWS IAM アイデンティティセンター ユーザーガイドの AWS IAM アイデンティティセンター とは を参照してください。
これらの 2 種類のユーザーの主な違いは、IAM アイデンティティセンターのユーザーが管理コンソールまたは AWS リソースにアクセスする前に AWS にサインインすると、自動的に IAM ロールを引き受けるという点です。IAM ロールは、ユーザーが AWS にサインインするたびに一時的な認証情報を付与します。IAM ユーザーが IAM ロールを使用してサインインするには、ロールを引き受けたり、ロールを切り替えたりするための許可が必要です。また、AWS アカウントにアクセスした後に引き受けるロールに切り替えることを明示的に選択する必要があります。
既存の ID ソースからユーザーをフェデレーションする
組織内のユーザーが企業ネットワークにサインインする際に既に認証されている場合は、そのユーザーのために個別の IAM ユーザーまたは IAM アイデンティティセンターのユーザーを作成する必要はありません。代わりに、IAM または AWS IAM アイデンティティセンター のいずれかを使用して、これらのユーザー ID を AWS にフェデレートすることができます。OIDC および SAML のフェデレーティッドプリンシパルは、特定のリソースにアクセスする許可を付与する IAM ロールを引き受けます。ロールの詳細については、「ロールに関する用語と概念」をご参照ください。
フェデレーションは、次の場合に便利です。
-
ユーザーがすでに社内ディレクトリに所有している。
社内ディレクトリが Security Assertion Markup Language 2.0 (SAML 2.0) と互換性がある場合は、ユーザーに AWS マネジメントコンソール へのシングルサインオン (SSO) アクセスを許可するように、社内ディレクトリを設定できます。詳細については、「一時的な認証情報の一般的なシナリオ」を参照してください。
社内ディレクトリが SAML 2.0 と互換性がない場合は、ユーザーに AWS マネジメントコンソール へのシングルサインオン (SSO) アクセスを許可するために、ID ブローカーアプリケーションを作成できます。詳細については、「AWS コンソールへのカスタム ID ブローカーアクセスを有効にする」を参照してください。
社内ディレクトリが Microsoft Active Directory である場合は、AWS IAM アイデンティティセンター を使用して、Active Directory の自己管理型ディレクトリや「AWS Directory Service
」のディレクトリを接続し、社内ディレクトリと AWS アカウント との間で信頼関係を確立できます。 Okta や Microsoft Entra などの外部 ID プロバイダー (IdP) を使用してユーザーを管理している場合は、AWS IAM アイデンティティセンター を使用して IdP と AWS アカウント 間の信頼を確立できます。詳細については、AWS IAM アイデンティティセンター ユーザーガイドの「外部の ID プロバイダーに接続」を参照してください。
-
ユーザーがすでにインターネットの ID を所有している。
作成するモバイルアプリケーションやウェブベースのアプリケーションで、Login with Amazon、Facebook、Google などの OpenID Connect (OIDC) 互換 ID プロバイダーのようなインターネット ID プロバイダーから、ユーザーがログインして認証されるようにする場合、アプリケーションからフェデレーションを使用して AWS へのアクセスが可能になります。詳細については、「OIDC フェデレーション」を参照してください。
ヒント
インターネット ID プロバイダーによる ID フェデレーションを使用するには、Amazon Cognito を使用することをお勧めします。
ユーザーアクセスを提供するさまざまな方法
ここでは、AWS リソースへのアクセスを提供する方法について説明します。
| ユーザーアクセスのタイプ | 使用されるタイミング | 詳細 |
|---|---|---|
|
IAM アイデンティティセンターを使用した、ワークフォースユーザーなどの人々による、AWS リソースに対するシングルサインオンアクセス |
IAM Identity Center はユーザーと AWS アカウント へのアクセス、クラウドアプリケーションの管理を一元化する場所を提供します。 IAM Identity Center 内に ID ストアを設定することも、既存の ID プロバイダー (IdP) とのフェデレーションを設定することもできます。セキュリティに関するベストプラクティスでは、AWS リソースに対する限定的な認証情報を人間のユーザーに付与することが推奨されています。 これにより、人々のサインインが簡素化されるとともに、リソースへのアクセスの管理を単一のシステムから実行できるようになります。IAM Identity Center では、追加のアカウントセキュリティとして多要素認証 (MFA) もサポートしています。 |
IAM Identity Center の設定の詳細については、「AWS IAM アイデンティティセンターユーザーガイド」の「Getting Started」(使用開始) を参照してください。 IAM Identity Center での MFA の使用方法については、「AWS IAM アイデンティティセンター ユーザーガイド」の「Multi-factor authentication」(多要素認証) を参照してください。 |
IAM ID プロバイダー (IdP) を使用した、従業員など人間のユーザーによる、AWS サービスに対するフェデレーテッドアクセス |
IAMは、OpenID Connect (OIDC) または SAML 2.0 (Security Assertion Markup Language 2.0) と互換性のある IdP をサポートします。IAM ID プロバイダーを作成した後、フェデレーティッドプリンシパルに動的に割り当てが可能な IAM ロールを 1 つ以上作成します。 |
IAM ID プロバイダーおよびフェデレーションの詳細については、「ID プロバイダーとフェデレーション」を参照してください。 |
|
AWS アカウント 間でのクロスアカウントアクセス |
特定の AWS リソースへのアクセスを、他の AWS アカウント のユーザーと共有したい場合があります。 クロスアカウントアクセスを許可する主な方法は、ロールを使用することです。ただし、一部の AWS サービスは、(ロールをプロキシとして使用する代わりに) ポリシーをリソースに直接アタッチすることを許可するリソースベースのポリシーをサポートしています。 |
IAM ロールの詳細については、「IAM ロール」を参照してください。 サービスにリンクされたロールの詳細については、「サービスにリンクされたロールの作成」を参照してください。 サービスにリンクされたロールの使用をサービスでサポートするには、「IAM と連携する AWS のサービス」を参照してください。[サービスにリンクされたロール] 列が [はい] になっているサービスを見つけます。サービスにリンクされたロールのドキュメントをサービスで表示するには、その列の「はい」に関連するリンクを選択します。 |
|
AWS アカウント の専有 IAM ユーザー向けの長期的な認証情報 |
特定のユースケースでは、AWS の IAM ユーザーに長期的な認証情報が必要となることがあります。これらの IAM ユーザーを AWS アカウント に作成するために IAM を使用し、また、そのユーザーのアクセス許可を IAM により管理できます。ユースケースには次のようなものがあります。
ベストプラクティスとして、プログラムによるアクセスと長期的な認証情報を持つ IAM ユーザーが必要なシナリオでは、必要な時にアクセスキーを更新することをお勧めします。詳細については、「アクセスキーを更新する」を参照してください。 |
IAM ユーザー設定の詳細については、「AWS アカウント で IAM ユーザーを作成する」を参照してください。 IAM ユーザーのアクセスキーの詳細については、「IAM ユーザーのアクセスキーを管理します。」を参照してください。 AWS CodeCommit または Amazon Keyspaces サービス固有の認証情報の詳細については、「CodeCommit の IAM 認証情報: Git 認証情報、SSH キー、および AWS アクセス キー」および「Amazon Keyspaces で IAM を使用する(Apache Cassandra の場合)」を参照してください。 |
プログラムによるユーザーアクセスをサポートする
AWS マネジメントコンソール 以外で AWS とやりとりするには、ユーザーはプログラムによるアクセスが必要です。プログラムによるアクセスを許可する方法は、AWS にアクセスしているユーザーのタイプによって異なります。
-
IAM Identity Center で ID を管理する場合、AWS API にはプロファイルが必要で、AWS Command Line Interface にはプロファイルまたは環境変数が必要です。
-
IAM ユーザーがいる場合、AWS API と AWS Command Line Interface にはアクセスキーが必要です。可能な限り、アクセスキー ID、シークレットアクセスキー、および認証情報の失効を示すセキュリティトークンが含まれる一時的な認証情報を作成します。
ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。
| プログラマチックアクセス権を必要とするユーザー | オプション | 詳細情報 |
|---|---|---|
|
ワークフォース ID (IAM アイデンティティセンターで管理される人々とユーザー) |
短期認証情報を使用して、AWS CLI または AWS API (直接または AWS SDK を使用して) へのプログラムによるリクエストに署名します。 |
AWS CLI については、AWS IAM アイデンティティセンター ユーザーガイドの「Getting IAM role credentials for CLI access」(CLI アクセス用の IAM ロール認証情報の取得) の指示に従ってください。 AWS API については、「AWS SDK およびツールリファレンスガイド」の「SSO 認証情報」の指示に従ってください。 |
| IAM ユーザー | 短期認証情報を使用して、AWS CLI または AWS API (直接または AWS SDK を使用して) へのプログラムによるリクエストに署名します。 | 「AWS リソースでの一時的な認証情報の使用」の指示に従ってください。 |
| IAM ユーザー | 長期間の認証情報を使用して、AWS CLI または AWS API (直接またはAWS SDK を使用して) へのプログラムによるリクエストに署名します。 (非推奨) |
「IAM ユーザーのアクセスキーの管理」の指示に従ってください。 |
| フェデレーテッドプリンシパル | AWS STS API オペレーションを使用して、アクセスキーペアやセキュリティトークンを含む一時的セキュリティ認証情報で新しいセッションを作成します。 | API オペレーションの説明については、「一時的なセキュリティ認証情報をリクエストする」を参照してください |