IAM ユーザー
重要
IAM ユーザーは、AWS アカウント で作成したエンティティです。IAM ユーザーは、IAM ユーザーを使用して AWS リソースとやりとりする人間のユーザーまたはワークロードを表します。IAM ユーザーは名前と認証情報で構成されます。
管理者アクセス許可を持つ IAM ユーザーが AWS アカウントのルートユーザー ということではありません。ルートユーザー の詳細については、「AWS アカウントのルートユーザー」を参照してください。
AWS が IAM ユーザーを識別する方法
IAM ユーザーを作成すると、IAM はそのユーザーを識別するための以下の手段を作成します。
-
IAM ユーザーの「フレンドリ名」。IAM ユーザーを作成したときに指定した名前です (
Richard
、Anaya
など)。これは、AWS Management Console に表示される名前です。 -
IAM ユーザーの Amazon リソースネーム (ARN)。AWS 全体で IAM ユーザーを一意に識別する必要がある場合は、ARN を使用します。例えば、ARN を使用して、Amazon S3 バケットの IAM ポリシーの
Principal
として IAM ユーザーを指定できます。IAM ユーザーの ARN は次の例のように表示されます。arn:aws:iam::
account-ID-without-hyphens
:user/Richard -
IAM ユーザー用の一意の識別子。この ID が返されるのは、API、Tools for Windows PowerShell または AWS CLI を使用して IAM ユーザーを作成した場合だけです。この ID はコンソールには表示されません。
これらの ID の詳細についてはIAM IDを参照してください。
IAM ユーザーと認証情報
AWS には、IAM ユーザーの認証情報に応じてさまざまな方法でアクセスできます。
-
コンソールパスワード: AWS Management Console などのインタラクティブセッションにサインインするときに IAM ユーザーが入力するパスワード。IAM ユーザーのパスワード (コンソールアクセス) を無効化すると、サインイン認証情報を使用して AWS Management Console にサインインできなくなります。アクセス許可を変更したり、想定されたロールを使用してコンソールにアクセスすることを妨げたりすることはありません。
-
アクセスキー: AWS へのプログラムによる呼び出しに使用されます。ただし、IAM ユーザーのアクセスキーを作成する前に検討すべきより安全な代替手段があります。詳細については、「AWS 全般のリファレンス」の「長期的なアクセスキーの考慮事項と代替方法」を参照してください。IAM ユーザーがアクティブなアクセスキーを持っている場合、それらのキーは引き続き機能し、AWS CLI、Tools for Windows PowerShell、AWS API、または AWS Console Mobile Application 用のツールを介したアクセスを許可します。
-
CodeCommit で使用する SSH キー: CodeCommit での認証に使用可能な OpenSSH 形式の SSH パブリックキー。
-
サーバー証明書: AWS の一部のサービスでの認証に使用可能な SSL/TLS 証明書。AWS Certificate Manager (ACM) を使用してサーバー証明書のプロビジョニング、管理、デプロイを行うことをお勧めします。ACM でサポートされていないリージョンで HTTPS 接続をサポートする必要があるときにのみ、IAM を使用してください。ACM をサポートするリージョンについては、「AWS 全般のリファレンス」の「AWS Certificate Manager エンドポイントとクォータ」を参照してください。
IAM ユーザーに適した認証情報を選択できます。AWS Management Console を使用して IAM ユーザーを作成するときは、少なくともコンソールパスワードまたはアクセスキーを含める選択をする必要があります。デフォルトでは、AWS CLI または AWS API を使用して作成された新しい IAM ユーザーには、どのような種類の認証情報も提供されていません。ユースケースに基づいて、IAM ユーザーに合った種類の認証情報を作成する必要があります。
パスワード、アクセスキー、および多要素認証 (MFA) デバイスの管理には、以下のオプションがあります。
-
IAM ユーザーのパスワードを管理します。AWS Management Console へのアクセスを許可するパスワードを作成および変更します。最低限のパスワードの複雑さを強制するパスワードポリシーを設定します。IAM ユーザーが自分のパスワードを変更できるようにします。
-
IAM ユーザーのアクセスキーを管理します。アカウントのリソースにプログラムでアクセスするためのアクセスキーを作成および更新します。
-
IAM ユーザーの多要素認証 (MFA) を有効化する。ベストプラクティスとして、アカウントのすべての IAM ユーザーに対して、多要素認証を要求することをお勧めします。MFA を使用する場合、IAM ユーザーは 2 つの形式の ID を指定する必要があります。まず、ユーザー ID の一部である認証情報 (パスワードまたはアクセスキー) を指定します。さらに、一時的な数値コードを指定します。この数値コードは、ハードウェアデバイスか、スマートフォンまたはタブレットのアプリケーションで生成されます。
-
使用されていないパスワードおよびアクセスキーを見つけます。アカウントのパスワードまたはアクセスキーを持つユーザー、またはアカウント内の IAM ユーザーであれば、だれでも AWS リソースにアクセスできます。セキュリティ保護のためのベストプラクティスは、IAM ユーザーがパスワードやアクセスキーを使用しなくなったら、それらを削除することです。
-
アカウントの認証情報レポートをダウンローします。アカウント内のすべての IAM ユーザーと、ユーザーの各種認証情報 (パスワード、アクセスキー、MFA デバイスなど) のステータスが示された認証情報レポートを生成し、ダウンロードできます。パスワードおよびアクセスキーについては、パスワードやアクセスキーが最近いつ使用されたかが、認証情報レポートに表示されます。
IAM ユーザーおよびアクセス許可
デフォルトでは、新しい IAM ユーザーには、何かを実施するためのアクセス許可がありません。AWS オペレーションの実行や AWS リソースへのアクセスを認可されていません。個々の IAM ユーザーを持つ利点は、アクセス許可を各ユーザーに個別に割り当てることができることです。管理アクセス許可を複数のユーザーに割り当てることができます。これらのユーザーは、AWS リソースを管理するだけでなく、他の IAM ユーザーを作成して管理することもできます。ただし、通常、ユーザーのアクセス許可はユーザーの作業に必要なタスク (AWS アクションまたはオペレーション) とリソースだけに制限します。
Diego というユーザーを想定します。IAM ユーザー Diego
を作成する際には、そのパスワードを作成し、特定の Amazon EC2 インスタンスの開始と Amazon RDS データベース内のテーブルの情報の読み取り (GET
) を行うことができるアクセス許可をアタッチします。IAM ユーザーを作成して初期認証情報とアクセス許可を付与する手順については、「AWS アカウント で IAM ユーザーを作成する」を参照してください。既存のユーザーのアクセス許可を変更する手順については、「IAM ユーザーのアクセス許可を変更する」を参照してください。ユーザーのパスワードやアクセスキーを変更する手順については、「AWS でユーザーのパスワードを管理する」と「IAM ユーザーのアクセスキーを管理します。」を参照してください。
IAM ユーザーにアクセス許可の境界を追加することもできます。アクセス許可の境界は、AWS 管理ポリシーを使用してアイデンティティベースのポリシーで IAM ユーザーまたはロールに付与できるアクセス許可の上限を設定できる高度な機能です。ポリシーのタイプと用途の詳細については、「AWS Identity and Access Management でのポリシーとアクセス許可」を参照してください。
IAM ユーザーとアカウント
各 IAM ユーザーが関連付けられる AWS アカウント は 1 つだけです。IAM ユーザーは AWS アカウント 内で定義されているため、AWS のファイルに対する支払方法を持つ必要はありません。アカウント内の IAM ユーザーユーザーが実行したすべての AWS アクティビティは、お客様のアカウントに請求されます。
AWS アカウントの IAM リソースの数とサイズには制限があります。詳細については、「IAM と AWS STSクォータ」を参照してください。
IAM ユーザーとサービスアカウント
IAM ユーザーは、関連付けられた認証情報とアクセス権限を持つ、IAM のリソースです。IAM ユーザーは、認証情報を使用して AWS リクエストを行う人物またはアプリケーションを表すことができます。これは通常、サービスアカウントと呼ばれます。IAM ユーザーの長期的な認証情報を使用することを選択した場合は、アプリケーションコードに直接アクセスキーを埋め込まないでください。AWS SDK と AWS Command Line Interface では、既知のロケーションにアクセスキーを置くことができるため、コードで保持する必要はありません。詳細については、 「AWS 全般のリファレンス」の「IAM ユーザーアクセスキーを適切に管理する」を参照してください。または、ベストプラクティスとして、長期的なアクセスキーの代わりに一時的なセキュリティ認証情報 (IAM ロール) を使用できます。