IAM ID (ユーザー、ユーザーグループ、ロール) - AWS Identity and Access Management

IAM ID (ユーザー、ユーザーグループ、ロール)

ヒント

AWS へのサインインに問題がある場合 正しいサインインページが表示されていることを確認します。

  • AWS アカウントのルートユーザー (アカウント所有者) としてサインインする場合は、AWS アカウント の作成時に設定した認証情報を使用します。

  • IAM ユーザーとしてサインインするには、アカウント管理者が AWS へサインインするために提供した認証情報を使用します。

  • IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

    IAM アイデンティティセンターユーザーを使用してサインインする方法については、「AWS サインイン ユーザーガイド」の「AWS アクセスポータルにサインインする」を参照してください。

サインインチュートリアルについては、「AWS サインイン ユーザーガイド」の「AWS へのサインイン方法」を参照してください。

注記

サポートをリクエストする必要がある場合は、このページの [Feedback] (フィードバック) リンクを使用しないでください。入力したフィードバックは、AWS サポートではなく AWS ドキュメントチームが受け取ります。代わりに、このページの上部にある [Contact Us] (お問い合わせ) リンクを選択します。そこには、必要なサポートを受けるのに役立つリソースへのリンクがあります。

AWS アカウントのルートユーザー またはアカウントの管理ユーザーは、IAM ID を作成できます。IAM ID は、AWS アカウント へのアクセスを提供します。IAM ユーザーグループとは、1 つのユニットとして管理される IAM ユーザーの集まりです。IAM ID とは、人間のユーザーまたはプログラムによるワークロードを表し、認証を受けて AWS でアクションを実行する権限を持ちます。各 IAM ID は、1 つ以上のポリシーに関連付けることができます。ポリシーは、ユーザー、ロール、またはユーザーグループのメンバーが実行できるアクション、 AWS リソース、および条件を決定します。

AWS アカウント ルートユーザー

AWS アカウント を最初に作成する場合は、アカウントのすべての AWS のサービス とリソースに対して完全なアクセス権を持つ 1 つのサインインアイデンティティから始めます。この ID は AWS アカウント ルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインすることによってアクセスできます。

重要

日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報を保護し、それらを使用してルートユーザーのみが実行できるタスクを実行してください。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、「ルートユーザー認証情報が必要なタスク」を参照してください。

IAM ユーザー

IAM ユーザー は、1 人のユーザーまたは 1 つのアプリケーションに対して特定の許可を持つ AWS アカウント内のアイデンティティです。可能であれば、ベストプラクティスでは、パスワードやアクセスキーなどの長期的な認証情報を保有する IAM ユーザーを作成する代わりに、一時的な認証情報を使用することをお勧めします。アクセスキーを作成する前に、長期的なアクセスキーの代替案を確認してください。アクセスキーを必要とする特定のユースケースがある場合は、必要に応じてアクセスキーを更新することをお勧めします。詳細については、「長期的な認証情報を必要とするユースケースのためにアクセスキーを必要な時に更新する」を参照してください。IAM ユーザーを AWS アカウント に追加するには、「AWS アカウント での IAM ユーザーの作成」を参照してください。

注記

セキュリティ上のベストプラクティスとして、IAM ユーザーを作成するのではなく、ID フェデレーションを通じてリソースへのアクセスを提供することをお勧めします。IAM ユーザーが必要な特定の状況についての情報は、「IAMユーザー (ロールの代わりに) を作成する場合」を参照してください。

IAM ユーザーグループ

IAM グループ は、IAM ユーザーの集団を指定するアイデンティティです。サインインにグループを使用することはできません。グループを使用して、複数のユーザーに対して一度に権限を指定できます。多数のユーザーグループがある場合、グループを使用することで権限の管理が容易になります。例えば、IAMPublishers という名前でグループを作成し、公開するワークロードが一般的に必要とするようなアクセス許可を、そのグループに付与することができます。

IAM ロール

IAM ロール は、特定の許可を持つ、AWS アカウント 内のアイデンティティです。これは IAM ユーザーに似ていますが、詳細のユーザーに関連付けられていません。ロールを切り替えることによって、AWS Management Console で IAM ロールを一時的に引き受けることができます。ロールを引き受けるには、AWS CLI または AWSAPI オペレーションを呼び出すか、カスタム URL を使用します。ロールを使用する方法の詳細については、「IAM ロールを使用する」を参照してください。

IAM ロールと一時的な認証情報は、次の状況で使用されます。

  • フェデレーションユーザーアクセス – フェデレーションアイデンティティに権限を割り当てるには、ロールを作成してそのロールの権限を定義します。フェデレーションアイデンティティが認証されると、そのアイデンティティはロールに関連付けられ、ロールで定義されている権限が付与されます。フェデレーションの詳細については、「IAM ユーザーガイド」の「サードパーティーアイデンティティプロバイダー向けロールの作成」を参照してください。IAM アイデンティティセンターを使用する場合、権限セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、権限セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、「AWS IAM Identity Center ユーザーガイド」の「アクセス許可セット」を参照してください。

  • 一時的な IAM ユーザー権限 - IAM ユーザーまたはロールは、特定のタスクに対して複数の異なる権限を一時的に IAM ロールで引き受けることができます。

  • クロスアカウントアクセス - IAM ロールを使用して、自分のアカウントのリソースにアクセスすることを、別のアカウントの人物 (信頼済みプリンシパル) に許可できます。クロスアカウントアクセス権を付与する主な方法は、ロールを使用することです。ただし、一部の AWS のサービスでは、(ロールをプロキシとして使用する代わりに) リソースにポリシーを直接アタッチできます。クロスアカウントアクセスでのロールとリソースベースのポリシーの違いの詳細については、「IAM でのクロスアカウントのリソースへのアクセス」を参照してください。

  • クロスサービスアクセス - 一部の AWS のサービスでは、他の AWS のサービスの機能を使用します。例えば、あるサービスで呼び出しを行うと、通常そのサービスによって Amazon EC2 でアプリケーションが実行されたり、Amazon S3 にオブジェクトが保存されたりします。サービスでは、呼び出し元プリンシパルの許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。

    • 転送アクセスセッション (FAS) – IAM ユーザーまたはロールを使用して AWS でアクションを実行するユーザーは、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、AWS のサービスを呼び出すプリンシパルの権限を、AWS のサービスのリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストは、サービスが、完了するために他の AWS のサービス またはリソースとのやりとりを必要とするリクエストを受け取ったときにのみ行われます。この場合、両方のアクションを実行するためのアクセス許可が必要です。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

    • サービスロール - サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス にアクセス許可を委任するロールの作成」を参照してください。

    • サービスリンクロール - サービスリンクロールは、AWS のサービス にリンクされたサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスリンクロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの許可を表示できますが、編集することはできません。

  • Amazon EC2 で実行されているアプリケーション - EC2 インスタンスで実行され、AWS CLI または AWSAPI 要求を行っているアプリケーションの一時的な認証情報を管理するには、IAM ロールを使用できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスに添付されたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時的な認証情報を取得できます。詳細については、「IAM ユーザーガイド」の「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用して許可を付与する」を参照してください。

IAM での一時認証情報

人間のユーザーとワークロードの両方に、一時的な認証情報を使用することがベストプラクティスです。一時的な認証情報は主に IAM ロールとともに使用されますが、他の用途もあります。標準的な IAM ユーザーよりも限定的なアクセス許可を含む一時的な認証情報を要求することができます。これにより、より限定的な認証情報によって許可されていないタスクを誤って実行することを防止できます。一時的な認証情報の利点は、一定期間が経過すると自動的に失効することです。認証情報が有効である期間は認証情報を制御できます。

IAM Identity Center ユーザーを使用する場合とは?

AWS リソースにアクセスする人間のユーザー全員は、IAM Identity Center を使用することをお勧めします。IAM Identity Center は、IAM ユーザーからの AWS リソースへのアクセスを大幅に改善します。IAM Identity Center により以下が提供されます。

  • アイデンティティと割り当ての集約

  • AWS 組織全体のアカウントへのアクセス

  • 既存の ID プロバイダーへの接続

  • 一時的な認証情報

  • 多要素認証 (MFA)

  • エンドユーザーによるセルフサービスの MFA 設定

  • 管理目的での MFA の使用の実施

  • すべての AWS アカウント 権限へのシングルサインオン

詳細については、「AWS IAM Identity Center ユーザーガイド」の「What is IAM Identity Center」(IAM Identity Center とは) を参照してください。

IAM ユーザーの作成が適している場合 (ロールではなく)

IAM ユーザーは、フェデレーションユーザーでサポートされていないユースケースにのみ使用することをお勧めします。ユースケースには次のようなものがあります。

  • IAM ロールを使用できないワークロード – AWS へのアクセスが必要な場所から、ワークロードを実行する場合があります。状況によっては、IAM ロールを使用して WordPress プラグインなどに対して一時的な認証情報を提供することができない場合もあります。このような状況では、そのワークロードに対して IAM ユーザーの長期的なアクセスキーを使用して、AWS への認証を行います。

  • サードパーティー AWS クライアント – IAM Identity Center を使用したアクセスがサポートされていないツール (AWS でホストされていないサードパーティー AWS クライアントまたはベンダーなど) を使用している場合 は、IAM ユーザーの長期的なアクセスキーを使用します。

  • AWS CodeCommit アクセス — CodeCommit を使用してコードを保存している場合、CodeCommit の SSH キーまたはサービス固有の認証情報を持つ IAM ユーザーを使用して、リポジトリへの認証を行うことができます。通常の認証に IAM Identity Center のユーザーを使用することに加えて、これを行うことをお勧めします。IAM Identity Center のユーザーとは、お客様の AWS アカウント またはクラウドアプリケーションにアクセスする必要がある従業員のことです。IAM ユーザーを設定せずに CodeCommit リポジトリへのアクセス許可をユーザーに付与するには、git-remote-codecommit ユーティリティを設定します。IAM および CodeCommit の詳細については、「CodeCommit での IAM の使用: Git 認証情報、SSH キー、および AWS アクセスキー」を参照してください。git-remote-codecommit ユーティリティの設定についての詳細は、「AWS CodeCommit ユーザーガイド」の「認証情報のローテーションを使用した AWS CodeCommit リポジトリへの接続」を参照してください。

  • Amazon Keyspaces (Apache Cassandra 向け) へのアクセス – IAM Identity Center 内のユーザーを使用できない状況 (Cassandra との互換性をテストする場合など) では、サービス専用の認証情報を持つ IAM ユーザーを使用して Amazon Keyspaces で認証できます。IAM Identity Center のユーザーとは、お客様の AWS アカウント またはクラウドアプリケーションにアクセスする必要がある従業員のことです。一時的な認証情報を使用して Amazon Keyspaces に接続することもできます。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) デベロッパーガイド」の「Using temporary credentials to connect to Amazon Keyspaces using an IAM role and the SigV4 plugin」(一時的な認証情報を使用して IAM ロールと SigV4 プラグインを使用して Amazon Keyspaces に接続する) を参照してください。

  • 緊急アクセス — ID プロバイダーにアクセスできない状況で、AWS アカウント のアクションを実行する必要がある場合。緊急アクセスの IAM ユーザーを設定することは、レジリエンス計画の一部となります。緊急時のユーザー認証情報は、多要素認証 (MFA) を使用して厳重に管理し、安全性を確保することをお勧めします。

IAM ロールの作成が適している場合 (ユーザーではなく)

次のような状況では、IAM ロールを作成します。

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行するアプリケーションを作成しており、そのアプリケーションが AWS にリクエストを送信します。

IAM ユーザーを作成してユーザーの認証情報をアプリケーションに渡したり、認証情報をアプリケーションに埋め込んだりしないでください。代わりに、EC2 インスタンスにアタッチする IAM ロールを作成し、インスンタンスで実行されているアプリケーションに一時的なセキュリティ認証情報を与えます。アプリケーションは AWS でこれらの認証情報を使用すると、ロールにアタッチされたポリシーによって許可されているすべてのオペレーションを実行できます。詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する」を参照してください

モバイルフォン上で実行するアプリを作成します。このアプリは AWS にリクエストを送信します。

IAM ユーザーを作成してユーザーのアクセスキーをアプリケーションと共に配信しないでください。代わりに、Login with Amazon、Amazon Cognito、Facebook、または Google などの ID プロバイダーを使用してユーザーを認証し、IAM ロールをユーザーにマッピングします。アプリケーションはロールを使用して、ロールにアタッチされたポリシーで指定されたアクセス権限を持つ一時的なセキュリティ認証情報を取得できます。詳細については、次を参照してください:

企業内のユーザーが企業ネットワークで認証された後、再びサインインすることなく AWS を使用できるようにします。つまり、ユーザーに AWS へのフェデレーションを許可します。

IAM ユーザーを作成しないでください。企業の ID システムと AWS 間にフェデレーション関係を設定します。これには 2 つの方法があります。

AWS アカウントのルートユーザー の認証情報と IAM ユーザーの認証情報を比較する

ルートユーザーはアカウント所有者であり、AWS アカウント の作成時に作成されます。IAM ユーザーや AWS IAM Identity Center ユーザーなどを含む他のタイプのユーザーは、ルートユーザーまたはアカウントの管理者によって作成されます。すべての AWS ユーザーはセキュリティ認証情報を持っています。

ルートユーザーの認証情報

アカウント所有者の認証情報によって、アカウント内のすべてのリソースへのフルアクセスが許可されます。IAM ポリシーを使用して、リソースへのルートユーザーアクセスを明示的に拒否することはできません。AWS Organizations サービスコントロールポリシー (SCP) を使用できるのは、メンバーアカウントのルートユーザーの許可を制限する場合のみです。このため、日常的な AWS タスクに使用するための管理者許可を持つユーザーを IAM Identity Center で作成することをお勧めします。その後、ルートユーザーの認証情報を保護し、ルートユーザーとしてサインインする必要がある少数のアカウント/サービス管理タスクのみを実行するためにそれを使用します。これらのタスクのリストについては、「ルートユーザー認証情報が必要なタスク」を参照してください。IAM Identity Center で日常的に使用する管理者を設定する方法については、IAM Identity Center ユーザーガイドの「はじめに」を参照してください。

IAM 認証情報

IAM ユーザーは AWS で作成されるエンティティであり、IAM ユーザーを使用して AWS リソースとやり取りする人またはサービスを表します。これらのユーザーは、特定のカスタム権限を持つ AWS アカウント 内のアイデンティティです。たとえば、IAM ユーザーを作成し、IAM Identity Center にディレクトリを作成するアクセス許可を付与できます。IAM ユーザーは、AWS Management Console を使用して、またはプログラムで AWS CLI または AWS API を使用して AWS にアクセスするために使用できる長期的な認証情報を持っています。IAM ユーザーが AWS Management Console にサインインする手順については、AWS サインインユーザーガイドの「IAM ユーザーとして AWS Management Console にサインインするには」を参照してください。

一般的に、IAM ユーザーにはユーザー名やパスワードなどの長期的な認証情報があるため、作成しないことをお勧めします。代わりに、人間のユーザーが AWS にアクセスする際は、一時的な認証情報の使用を要求します。一時的な資格情報を提供する IAM ロールを引き受けることで、人間のユーザーのアイデンティティプロバイダーを使用した AWS アカウント へのフェデレーションアクセスが可能になります。一元的なアクセス管理を行うには、IAM Identity Center を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。ユーザー ID を、IAM Identity Center を使用して管理することも、外部 ID プロバイダーから、IAM Identity Center 内のユーザー ID に付与するアクセス許可を管理することもできます。詳細については、IAM Identity Center ユーザーガイドの「IAM Identity Center とは」を参照してください。