ロールまたはインスタンスプロファイルを削除する - AWS Identity and Access Management

ロールまたはインスタンスプロファイルを削除する

ロールが不要になった場合は、ロールとその関連する権限を削除することをお勧めします。そうすることで、使用していないエンティティがアクティブにモニタリングされたり、メンテナンスされたりすることがなくなります。

ロールが EC2 インスタンスに関連付けられている場合、インスタンスプロファイルからロールを削除した後、インスタンスプロファイルを削除することもできます。

警告

削除しようとしているロールまたはインスタンスプロファイルで実行されている Amazon EC2 インスタンスがないことを確認してください。実行中のインスタンスに関連付けられているロールまたはインスタンスプロファイルを削除すると、そのインスタンスで実行されているすべてのアプリケーションが中断されます。

ロールを完全に削除しない場合は、ロールを無効にできます。そのためには、ロールのポリシーを変更してから、現在のすべてのセッションを取り消します。例えば、ロールに、すべての AWS へのアクセスを拒否したポリシーを追加できます。ロールを引き受けようとするすべてのユーザーへのアクセスを拒否するように、信頼ポリシーを編集することもできます。セッションの取り消しの詳細については、「IAM ロールの一時的なセキュリティ認証情報を取り消す」を参照してください。

ロールへのアクセスの表示

ロールを削除する前に、ロールが最後に使用された日時を確認することをお勧めします。これを行うには、AWS Management Console、AWS CLI、または AWS API を使用します。ロールを使用しているユーザーからアクセスを削除したくないため、この情報を表示する必要があります。

ロールの最後のアクティビティの日付が、[Access Advisor (アクセスアドバイザー)] タブで報告された最後の日付と一致しない場合があります。[Access Advisor (アクセスアドバイザー)] タブでは、ロールのアクセス許可ポリシーで許可されているサービスのアクティビティのみがレポートされます。ロールの最後のアクティビティの日付には、AWS でサービスにアクセスしようとした最後の試みが含まれます。

注記

ロールの直近のアクティビティと Access Advisor データの追跡期間は、400 日間です。ユーザーのリージョンが昨年内にこれらの機能をサポートし始めた場合、この期間は短くなる可能性があります。このロールは 400 日以上前に使用された可能性があります。追跡期間の詳細については、「AWS が最終アクセス情報を追跡する場所」を参照してください。

ロールが最後に使用された日時を表示するには(コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで Roles (ロール) を選択します。

  3. アクティビティを表示するロールの行を探します。検索フィールドを使用して結果を絞り込むことができます。[Last activity (最後のアクティビティ)] 列を表示して、ロールが最後に使用されてからの日数を確認します。ロールが追跡期間内に使用されていない場合、テーブルには [None (なし)] と表示されます。

  4. 詳細情報を表示するには、ロールの名前を選択します。ロールの [Summary (概要)] ページには、ロールが最後に使用された日付を表示する [Last activity (最後のアクティビティ)] も含まれます。ロールが過去 400 日以内に使用されていない場合、[Last activity (最後のアクティビティ)] には [Not accessed in the tracking period (追跡期間中にアクセスされていません)] と表示されます。

ロールが最後に使用された日時を表示するには (AWS CLI)

aws iam get-role - RoleLastUsed オブジェクトを含むロールに関する情報を返すには、このコマンドを実行します。このオブジェクトには、ロールが最後に使用された LastUsedDateRegion が含まれます。RoleLastUsed が存在しても値が含まれていない場合、ロールは追跡期間内に使用されていません。

ロールが最後に使用された日時を表示するには (AWS API)

GetRole - このオペレーションを呼び出して、RoleLastUsed オブジェクトを含むロールに関する情報を返します。このオブジェクトには、ロールが最後に使用された LastUsedDateRegion が含まれます。RoleLastUsed が存在しても値が含まれていない場合、ロールは追跡期間内に使用されていません。

サービスにリンクされたロールの削除

サービスにリンクされたロールを削除する方法は、サービスによって異なります。場合によっては、サービスにリンクされたロールを手動で削除する必要はありません。たとえば、サービス特定のアクション (リソースの削除) を完了すると、サービスによって、サービスにリンクされたロールが削除される場合があります。また、サービスにリンクされたロールは、サービスコンソール、API、または AWS CLI から手動で削除できる場合があります。

リンクされたサービスでサービスにリンクされたロールに関するドキュメントを参照して、ロールを削除する方法を確認します。アカウントのサービスにリンクされたロールを表示するには、コンソールの [IAM ロール] ページに移動します。サービスにリンクされたロールが、テーブルの [Trusted entities] (信頼されたエンティティ) 列の [(Service-linked role)] ((サービスにリンクされたロール)) に表示されます。ロールの [Summary (概要)] ページのバナーにも、そのロールがサービスにリンクされたロールであることが示されています。

サービスにリンクされたロールを削除するためのドキュメントがサービスに含まれていない場合は、IAM コンソール、AWS CLI、または API を使用してロールを削除できます。

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

AWS Management Console を使用してロールを削除すると、IAM ではロールに関連付けられた管理ポリシーも自動的にデタッチされます。また、ロールに関連したインラインポリシーとロールを含む Amazon EC2 インスタンスプロファイルも自動的に削除されます。

重要

場合によっては、ロールは、Amazon EC2 インスタンスプロファイルに関連付いていることがあります。また、ロールとインスタンスプロファイルの名前が同じ場合があります。このような場合は、AWS Management Console を使用して、ロールやインスタンスプロファイルを削除することはできません。この関連付けは、コンソールで作成したロールとインスタンスプロファイルに対して自動的に行われます。AWS CLI、Tools for Windows PowerShell、または AWS API からロールを作成した場合は、ロールとインスタンスプロファイルで名前が異なることがあります。その場合、コンソールを使用してそれらのロールを削除することはできません。代わりに、まず、AWS CLI、Tools for Windows PowerShell、または AWS API を使用して、インスタンスプロファイルからロールを削除する必要があります。その後、ロールを削除する別の手順を実行する必要があります。

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

  2. ナビゲーションペインで、[ロール] を選択し、削除するロール名の隣にあるチェックボックスをオンにします。

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

  4. 確認ダイアログボックスで、最終アクセス情報を確認します。これは、選択したそれぞれのロールの AWS サービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。続行する場合は、テキスト入力フィールドにロール名を入力し、削除を選択します。確実に削除する場合は、最終アクセス情報をまだロード中であっても、削除を実行できます。

注記

ロールと同じ名前でない限り、コンソールを使用してインスタンスプロファイルを削除することはできません。ロールを削除する過程でインスタンスプロファイルを削除する必要があります。ロールを同時に削除することなくインスタンスプロファイルを削除するには、AWS CLI または AWS API を使用する必要があります。詳細については、次のセクションを参照してください。

IAM ロール(AWS CLI) の削除

AWS CLI を使用してロールを削除する場合、最初にそのロールに関連したインラインポリシーを削除しなければなりません。また、ロールに関連付けられた管理ポリシーもデタッチする必要があります。ロールを含む関連付けられたインスタンスプロファイルを削除する場合は、別途、削除する必要があります。

ロールを削除するには (AWS CLI)
  1. 削除するロールの名前が分からない場合、以下のコマンドを入力してお客様のアカウントにあるロールを表示します。

    aws iam list-roles

    リストには、各ロールの Amazon リソースネーム (ARN) が含まれます。CLI コマンドでは、ARN ではなくロール名を使用してロールを参照します。例えば、ロールの ARN が arn:aws:iam::123456789012:role/myrole である場合、そのロールを myrole と参照します。

  2. ロールが関連付けられたすべてのインスタンスプロファイルからロールを削除します。

    1. そのロールが関連付けられているすべてのインスタンスプロファイルを表示するには、以下のコマンドを入力します。

      aws iam list-instance-profiles-for-role --role-name role-name
    2. 各インスタンスプロファイルで以下のコマンドを入力して、インスタンスプロファイルからロールを削除します。

      aws iam remove-role-from-instance-profile --instance-profile-name instance-profile-name --role-name role-name
  3. そのロールに関連するすべてのポリシーを削除します。

    1. ロールに存在するすべてのインラインポリシーを一覧表示するには、以下のコマンドを入力します。

      aws iam list-role-policies --role-name role-name
    2. ロールから各インラインポリシーを削除するには、各ポリシーで以下のコマンドを入力します。

      aws iam delete-role-policy --role-name role-name --policy-name policy-name
    3. ロールにアタッチされたすべてのマネージドポリシーを一覧表示するには、以下のコマンドを入力します。

      aws iam list-attached-role-policies --role-name role-name
    4. ロールから各マネージドポリシーをデタッチするには、各ポリシーで以下のコマンドを入力します。

      aws iam detach-role-policy --role-name role-name --policy-arn policy-arn
  4. 次のコマンドを入力してロールを削除します。

    aws iam delete-role --role-name role-name
  5. そのロールに関連付けられたインスタンスプロファイルを再利用する予定がない場合、以下のコマンドを入力して削除できます。

    aws iam delete-instance-profile --instance-profile-name instance-profile-name

IAM ロールの削除 (AWS API)

IAM API を使用してロールを削除する場合、最初にそのロールに関連したインラインポリシーを削除しなければなりません。また、ロールに関連付けられた管理ポリシーもデタッチする必要があります。ロールを含む関連付けられたインスタンスプロファイルを削除する場合は、別途、削除する必要があります。

ロールを削除するには (AWS API)
  1. ロールが関連付けられたすべてのインスタンスプロファイルを一覧表示するには、ListInstanceProfilesForRole を呼び出します。

    インスタンスプロファイルからロールを削除するには、RemoveRoleFromInstanceProfile を呼び出します。ロール名およびインスタンスプロファイル名を引き渡さなければいけません。

    そのロールに関連付けられていたインスタンスプロファイルを再利用しない場合、DeleteInstanceProfile を呼び出して削除します。

  2. ロールのすべてのインラインポリシーを一覧表示するには、ListRolePolicies を呼び出します。

    ロールに関連付けられたインラインポリシーを削除するには、DeleteRolePolicy を呼び出します。ロール名およびインラインポリシー名を渡す必要があります。

  3. ロールにアタッチされたすべてのマネージドポリシーを一覧表示するには、ListAttachedRolePolicies を呼び出します。

    ロールにアタッチされたマネージドポリシーをデタッチするには、DetachRolePolicy を呼び出します。ロール名およびマネージドポリシー ARN を渡す必要があります。

  4. ロールを削除するには、DeleteRole を呼び出します。

インスタンスプロファイルの一般的な情報については、インスタンスプロファイルを使用するを参照してください。

サービスにリンクされたロールの一般情報については、「サービスにリンクされたロールの作成」を参照してください。