メニュー
AWS Identity and Access Management
ユーザーガイド

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

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

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

警告

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

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

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

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

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. ナビゲーションペインで、[Roles] を選択し、ロール名または行そのものではなく、削除するロール名の横にあるチェックボックスをオンにします。

  3. ページ上部の [Role actions] で、[Delete role] を選択します。

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

注記

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

IAM ロールの削除 (AWS CLI)

AWS CLI を使用してロールを削除する場合、最初にそのロールに関連したポリシーを削除しなければいけません。また、ロールを含む関連付けられたインスタンスプロファイルを削除する場合、別途、削除しなければいけません。

AWS CLI を使用してロールを削除するには (AWS CLI)

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

    Copy
    $ aws iam list-roles

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

  2. そのロールが存在するすべてのインスタンスプロファイルからそのロールを削除します。

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

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

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

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

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

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

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

    Copy
    $ aws iam delete-instance-profile --instance-profile-name instance-profile-name

IAM ロールの削除 (Tools for Windows PowerShell)

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

Tools for Windows PowerShell を使用してロールを削除するには (Tools for Windows PowerShell)

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

    Copy
    PS C:\> Get-IAMRoles | Select RoleName

    PowerShell コマンドレットでは、ARN ではなくロール名を使用してロールを参照します。たとえば、ロールの ARN が arn:aws:iam::123456789012:role/myrole である場合、そのロールを myrole と呼びます。

  2. そのロールが存在するすべてのインスタンスプロファイルからそのロールを削除します。次のコマンドは、ロールを含むすべてのインスタンスプロファイルのリストを取得して、リスト内の各インスタンスプロファイルからロールを削除し、次に空になったインスタンスプロファイルを削除します。インスタンスプロファイルを再利用する場合は、コマンドの最後のコマンドレットを省略できます。

    Copy
    PS C:\> Get-IAMInstanceProfileForRole -RoleName RoleName | Remove-IAMRoleFromInstanceProfile -RoleName RoleName | Remove-IAMInstanceProfile
  3. そのロールに関連するすべてのポリシーを削除します。次のコマンドは、ロールにアタッチされたすべてのポリシーのリストを取得し、それぞれをデタッチします。

    Copy
    PS C:\> Get-IAMAttachedRolePolicies -RoleName RoleName | Unregister-IAMRolePolicy -RoleName RoleName
  4. 次のコマンドを入力してロールを削除します。

    Copy
    PS C:\> Remove-IAMRole -RoleName RoleName

IAM ロールの削除 (AWS API)

IAM API を使用してロールを削除する場合、最初にそのロールに関連したポリシーを削除しなければいけません。また、ロールを含む関連付けられたインスタンスプロファイルを削除する場合、別途、削除しなければいけません。

AWS API を使用してロールを削除するには (API)

  1. ロールが存在するすべてのインスタンスプロファイルを表示するには、ListInstanceProfilesForRole を呼び出します。

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

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

  2. 1 つのロールのすべてのポリシーを表示するには、ListRolePolicies を呼び出します。

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

  3. DeleteRole を呼び出してロールを削除します。

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

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