IAM ユーザーの管理 - AWS Identity and Access Management

IAM ユーザーの管理

注記

ベストプラクティスとして、一時的な認証情報の使用により AWS にアクセスするには、人間のユーザーに対して ID プロバイダーとのフェデレーションの使用を必須とすることをお勧めします。ベストプラクティスに従えば、IAM ユーザーやグループを管理することにはなりません。管理するのではなく、ユーザーとグループは AWS の外部で管理され、フェデレーション ID として AWS リソースにアクセスできます。フェデレーション ID は、エンタープライズユーザーディレクトリ、ウェブ ID プロバイダー、AWS Directory Service、Identity Center ディレクトリのユーザー、または ID ソースから提供された認証情報を使用して AWS のサービスにアクセスするユーザーです。フェデレーション ID は、ID プロバイダーが定義したグループを使用します。AWS IAM Identity Center を使用している場合は、IAM Identity Center でのユーザーとグループの作成に関する情報について、AWS IAM Identity Center ユーザーガイドの「Manage identities in IAM Identity Center」(IAM Identity Center での ID の管理) を参照してください。

Amazon Web Services には、AWS アカウント の IAM ユーザーを管理するための複数のツールが用意されています。アカウントまたは特定のグループの IAM ユーザーを一覧表示したり、ユーザーが属するすべてのユーザーグループを一覧表示したりできます。また、IAM ユーザーの名前変更やパスの変更をしたりできます。IAM ユーザーではなくフェデレーション ID の使用に移行している場合は、AWS アカウントから IAM ユーザーを削除したり、ユーザーを非アクティブ化したりできます。

IAM ユーザーの管理ポリシーの追加、変更、または削除の詳細については、「IAM ユーザーのアクセス許可の変更」を参照してください。IAM ユーザーのインラインポリシーの管理の詳細については、「IAM ID のアクセス許可の追加および削除」、「IAM ポリシーの編集」、および「IAM ポリシーを削除する」を参照してください。ベストプラクティスとして、インラインポリシーではなく管理ポリシーを使用します。AWS 管理ポリシーでは、多くの一般的ユースケースでアクセス許可を付与します。AWS 管理ポリシーは、すべての AWS のユーザーが使用できるため、特定のユースケースに対して最小特権のアクセス許可が付与されない場合があることに留意してください。そのため、ユースケースに応じた顧客管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、「AWS マネージドポリシー」を参照してください。特定のジョブ機能用に設計された AWS 管理ポリシーの詳細については、AWSジョブ機能の 管理ポリシー を参照してください。

IAM ポリシーの検証の詳細については、「IAM ポリシーの検証」を参照してください。

ヒント

IAM Access Analyzer では、IAM ロールが使用するサービスとアクションを分析し、使用可能なきめ細かなポリシーを生成できます。生成された各ポリシーをテストしたら、ポリシーを本番環境にデプロイできます。これにより、ワークロードに必要なアクセス許可のみが付与されます。ポリシー生成の詳細については、「IAM Access Analyzer ポリシーの生成」を参照してください。

IAM ユーザーパスワードの管理に関する詳細については、「IAM ユーザーのパスワードの管理」を参照してください。

ユーザーアクセスの表示

ユーザーを削除する前に、サービスレベルの最近のアクティビティを確認する必要があります。これは、アクセス権を使用しているプリンシパル (ユーザーまたはアプリケーション) から削除しないようにするために重要です。最後にアクセスした情報を表示する方法の詳細については、「最終アクセス情報を使用した AWS のアクセス許可の調整」を参照してください。

IAM ユーザーの一覧表示

IAM ユーザーを一覧表示するには、AWS アカウント または特定の IAM ユーザーグループで、ユーザーが属するすべてのユーザーグループを一覧表示します。ユーザーの一覧表示に必要な権限の詳細については、「他の IAM リソースにアクセスするのに必要なアクセス許可」を参照してください。

アカウントのすべてのユーザーを一覧表示するには

特定のユーザーグループのユーザーを一覧表示するには

  • AWS Management Console: ナビゲーションペインで [ユーザーグループ] を選択し、ユーザーグループ名を選択してから、[ユーザー] タブを選択します。

  • AWS CLI: aws iam get-group

  • AWS API: GetGroup

ユーザーが所属しているすべてのユーザーグループを一覧表示するには

IAM ユーザーの名前の変更

ユーザーの名前またはパスを変更するには、AWS CLI、Tools for Windows PowerShell または AWS API を使用する必要があります。コンソールに、ユーザーの名前を変更するためのオプションはありません。ユーザーの名前の変更に必要なアクセス許可の詳細については、「他の IAM リソースにアクセスするのに必要なアクセス許可」を参照してください。

ユーザーの名前またはパスを変更すると、以下のことが起こります。

  • ユーザーにアタッチされているポリシーは、新しい名前のユーザーにそのままアタッチされています。

  • ユーザーは名前が変わるだけで、所属するユーザーグループは変わりません。

  • ユーザーの一意の ID は変更されません。一意の ID の詳細については、「一意の識別子」を参照してください。

  • ユーザーをプリンシパル (このユーザーにはアクセスが許可されます) として参照しているリソースやロールのポリシーは、新しい名前またはパスを使用するように自動的に更新されます。例えば、Amazon S3 内のキューベースのポリシー、または Amazon SQS 内のリソースベースのポリシーは、新しい名前またはパスを使用するように自動的に更新されます。

IAM は、ユーザーをリソースとして参照しているポリシーを、自動的に更新しません。新しい名前またはパスを使用するには、手動で更新する必要があります。例えば、Richard というユーザーに自身の認証情報の管理を許可するポリシーがアタッチされているとします。名前を Richard から Rich に変更する場合、管理者はそのポリシーを更新して、次のリソースを

arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Richard

次のように変更する必要があります。

arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Rich

パスを変更する場合も同様です。管理者は、ユーザーの新しいパスを反映するようにポリシーを更新する必要があります。

ユーザーの名前を変更するには

IAM ユーザーの削除

ユーザーが退職した場合、お客様の AWS アカウント から IAM ユーザーを削除することがあります。ユーザーが一時的に不在の場合は、IAM ユーザーの非アクティブ化 の説明に従って、アカウントから削除する代わりに、そのユーザーのアクセスを非アクティブ化できます。

IAM ユーザーの削除 (コンソール)

AWS Management Console を使用して IAM ユーザーを削除すると、IAM によって以下の情報が自動的に削除されます。

  • ユーザー

  • すべてのグループメンバシップ (つまり、ユーザーは、メンバーとして所属していたすべての IAM ユーザーグループから削除されます)

  • ユーザーのパスワード

  • ユーザーのアクセスキー

  • ユーザーに組み込まれていたすべてのインラインポリシー(ユーザーグループのアクセス権限を通じてユーザーに適用されているポリシーは影響を受けません)

    注記

    IAM は、ユーザーを削除すると、ユーザーにアタッチされた管理ポリシーをすべて削除しますが、管理ポリシーは削除しません。

  • 関連する MFA デバイス

IAM ユーザーを削除するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、[ユーザー] を選択し、ユーザー名または行そのものではなく、削除するユーザー名の横にあるチェックボックスをオンにします。

  3. ページの上部で、[削除] を選択します。

  4. 確認ダイアログボックスで、テキスト入力フィールドにユーザー名を入力し、ユーザーの削除を確認します。[削除] を選択します。

IAM ユーザーの削除 (AWS CLI)

AWS CLI を使用してユーザーを削除する場合、AWS Management Console の場合とは異なり、ユーザーにアタッチされている項目を削除する必要があります。この手順では、そのプロセスについて説明します。

アカウントからユーザーを削除するには (AWS CLI)
  1. ユーザーのパスワード(使用していた場合)を削除します.

    aws iam delete-login-profile

  2. ユーザーのアクセスキーを削除します (使用していた場合)。

    aws iam list-access-keys (ユーザーのアクセスキーを一覧表示するには) および aws iam delete-access-key

  3. ユーザーの署名証明書を削除します。認証情報を削除すると、完全に削除され、復元できないことに注意してください。

    aws iam list-signing-certificates (ユーザーの署名証明書を一覧表示するには) および aws iam delete-signing-certificate

  4. ユーザーの SSH パブリックキーを削除します (使用していた場合)。

    aws iam list-ssh-public-keys (ユーザーの SSH パブリックキーを一覧表示するには) および aws iam delete-ssh-public-key

  5. ユーザーの Git 認証情報を削除します。

    aws iam list-service-specific-credentials (ユーザーの Git 認証情報を一覧表示するには) および aws iam delete-service-specific-credential

  6. ユーザーの 多要素認証 (MFA) デバイスを無効にします (使用していた場合)。

    aws iam list-mfa-devices (ユーザーの MFA デバイスを一覧表示するには)、aws iam deactivate-mfa-device (デバイスを無効にするには)、aws iam delete-virtual-mfa-device (仮想 MFA デバイスを完全に削除するには)

  7. ユーザーのインラインポリシーを削除します。

    aws iam list-user-policies (ユーザーのインラインポリシーを一覧表示するには) および aws iam delete-user-policy (ポリシーをさくじょするには)

  8. ユーザーにアタッチされているすべての管理ポリシーをデタッチします。

    aws iam list-attached-user-policies (ユーザーにアタッチされているポリシーを一覧表示するには) および aws iam detach-user-policy (ポリシーをデタッチするには)

  9. すべてのユーザーグループからユーザーを削除します。

    aws iam list-groups-for-user (ユーザーが属するユーザーグループを一覧表示するには) および aws iam remove-user-from-group

  10. ユーザーを削除。

    aws iam delete-user

IAM ユーザーの非アクティブ化

IAM ユーザーが一時的に会社から離れるときは、そのユーザーを非アクティブ化する必要がある場合があります。IAM ユーザー認証情報を現状のままにしておき、AWS のアクセスをブロックすることができます。

ユーザーを非アクティブ化するには、AWS へのユーザーアクセスを拒否するポリシーを作成してアタッチします。ユーザーアクセスは後で復元できます。

ユーザーにアタッチしてアクセスを拒否できるポリシーを 2 例紹介します。

次のポリシーには期限を設けていません。ユーザーのアクセスを復元するには、ポリシーを削除する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*" } ] }

次のポリシーには、2024 年 12 月 24 日午後 11 時 59 分 (UTC) にポリシーを開始し、2025 年 2 月 28 日午後 11 時 59 分 (UTC) にポリシーを終了するという条件があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "DateGreaterThan": {"aws:CurrentTime": "2024-12-24T23:59:59Z"}, "DateLessThan": {"aws:CurrentTime": "2025-02-28T23:59:59Z"} } } ] }