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

ロールまたはインスタンスプロファイルの削除

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

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

警告

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

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

ロールのアクセスの表示

ロールを削除する前に、ロールが最後に使用された日時を確認することをお勧めします。これを行うには、AWS マネジメントコンソール、AWS CLI、または AWS API を使用します。この情報を使用しているユーザーからアクセス権を削除したくないため、この情報を表示することが重要です。

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

注記

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

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

  1. AWS マネジメントコンソール にサインインし、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 が存在しても値が含まれていない場合、ロールは追跡期間内に使用されていません。

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

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

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

IAM ロールの削除 (コンソール)

AWS マネジメントコンソール を使用してロールを削除すると、IAM ではロールに関連付けられたポリシーも自動的に削除されます。また、ロールを含む Amazon EC2 インスタンスプロファイルもすべて削除されます。

重要

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

ロールを削除するには (コンソール)

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

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

  3. ページの上部で、[Delete role (ロールの削除)] を選択します。

  4. 確認ダイアログボックスで、最終アクセス時間情報を確認します。これは、選択したそれぞれのロールの AWS サービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。先に進む場合は、[Yes, Delete (はい、削除します)] を選択します。確実に削除する場合は、最終アクセス時間情報をまだロード中であっても、削除を実行できます。

注記

ロールと同じ名前でない限り、コンソールを使用してインスタンスプロファイルを削除することはできません。また、前の手順で説明したように、ロールを削除する過程でインスタンスプロファイルを削除する必要があります。ロールを同時に削除することなくインスタンスプロファイルを削除するには、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
  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. 1 つのロールのすべてのポリシーを表示するには、ListRolePolicies を呼び出します。

    そのロールに関連付けられたすべてのポリシーを削除するには、DeleteRolePolicy を呼び出します。ロール名およびポリシー名を引き渡さなければいけません。

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

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

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