

# ロールまたはインスタンスプロファイルを削除する
<a name="id_roles_manage_delete"></a>

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

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

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

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

**Topics**
+ [ロールへのアクセスの表示](#roles-delete_prerequisites)
+ [サービスにリンクされたロールの削除](#id_roles_manage_delete_slr)
+ [IAM ロールの削除 (コンソール)](#roles-managingrole-deleting-console)
+ [IAM ロール（AWS CLI) の削除](#roles-managingrole-deleting-cli)
+ [IAM ロールの削除 (AWS API)](#roles-managingrole-deleting-api)
+ [関連情報](#roles-managingrole-deleting-related-info)

## ロールへのアクセスの表示
<a name="roles-delete_prerequisites"></a>

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

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

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

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

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

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

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

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

**ロールが最後に使用された日時を表示するには (AWS CLI)**  
`[aws iam get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)` - `RoleLastUsed` オブジェクトを含むロールに関する情報を返すには、このコマンドを実行します。このオブジェクトには、ロールが最後に使用された `LastUsedDate` と `Region` が含まれます。`RoleLastUsed` が存在しても値が含まれていない場合、ロールは追跡期間内に使用されていません。

**ロールが最後に使用された日時を表示するには (AWS API)**  
`[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/GetRole.html)` - このオペレーションを呼び出して、`RoleLastUsed` オブジェクトを含むロールに関する情報を返します。このオブジェクトには、ロールが最後に使用された `LastUsedDate` と `Region` が含まれます。`RoleLastUsed` が存在しても値が含まれていない場合、ロールは追跡期間内に使用されていません。

## サービスにリンクされたロールの削除
<a name="id_roles_manage_delete_slr"></a>

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

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

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

## IAM ロールの削除 (コンソール)
<a name="roles-managingrole-deleting-console"></a>

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/](https://console.aws.amazon.com/iam/) を開きます。

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

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

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

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

## IAM ロール（AWS CLI) の削除
<a name="roles-managingrole-deleting-cli"></a>

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

**ロールを削除するには (AWS CLI)**

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

   ```
   aws iam list-roles
   ```

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

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

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

      ```
      aws iam list-instance-profiles-for-role --role-name {{role-name}}
      ```

   1. 各インスタンスプロファイルで以下のコマンドを入力して、インスタンスプロファイルからロールを削除します。

      ```
      aws iam remove-role-from-instance-profile --instance-profile-name {{instance-profile-name}} --role-name {{role-name}}
      ```

1. そのロールに関連するすべてのポリシーを削除します。

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

      ```
      aws iam list-role-policies --role-name {{role-name}}
      ```

   1. ロールから各インラインポリシーを削除するには、各ポリシーで以下のコマンドを入力します。

      ```
      aws iam delete-role-policy --role-name {{role-name}} --policy-name {{policy-name}}
      ```

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

      ```
      aws iam list-attached-role-policies --role-name {{role-name}}
      ```

   1. ロールから各マネージドポリシーをデタッチするには、各ポリシーで以下のコマンドを入力します。

      ```
      aws iam detach-role-policy --role-name {{role-name}} --policy-arn {{policy-arn}}
      ```

1. 次のコマンドを入力してロールを削除します。

   ```
   aws iam delete-role --role-name {{role-name}}
   ```

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

   ```
   aws iam delete-instance-profile --instance-profile-name {{instance-profile-name}}
   ```

## IAM ロールの削除 (AWS API)
<a name="roles-managingrole-deleting-api"></a>

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

**ロールを削除するには (AWS API)**

1. ロールが関連付けられたすべてのインスタンスプロファイルを一覧表示するには、[ListInstanceProfilesForRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html) を呼び出します。

   インスタンスプロファイルからロールを削除するには、[RemoveRoleFromInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html) を呼び出します。ロール名およびインスタンスプロファイル名を引き渡さなければいけません。

   そのロールに関連付けられていたインスタンスプロファイルを再利用しない場合、[DeleteInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html) を呼び出して削除します。

1. ロールのすべてのインラインポリシーを一覧表示するには、[ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html) を呼び出します。

   ロールに関連付けられたインラインポリシーを削除するには、[DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html) を呼び出します。ロール名およびインラインポリシー名を渡す必要があります。

1. ロールにアタッチされたすべてのマネージドポリシーを一覧表示するには、[ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html) を呼び出します。

   ロールにアタッチされたマネージドポリシーをデタッチするには、[DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html) を呼び出します。ロール名およびマネージドポリシー ARN を渡す必要があります。

1. ロールを削除するには、[DeleteRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRole.html) を呼び出します。

## 関連情報
<a name="roles-managingrole-deleting-related-info"></a>

インスタンスプロファイルの一般的な情報については、[インスタンスプロファイルを使用する](id_roles_use_switch-role-ec2_instance-profiles.md)を参照してください。

サービスにリンクされたロールの一般情報については、「[サービスにリンクされたロールの作成](id_roles_create-service-linked-role.md)」を参照してください。