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

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

ロールが不要になった場合は、ロールおよびそれに関連するアクセス権限を削除し、活発にモニタリングまたは維持されていない未使用のエンティティをなくすことをお勧めします。

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

警告

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

ロールの削除(AWS マネジメントコンソール)

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

重要

ロールが Amazon EC2 インスタンスに関連付けられている場合、ロールとインスタンスプロファイルの名前がまったく同じである場合は、AWS コンソールを使用してロールとインスタンスプロファイルを削除できます。コンソールで作成されている場合は、この処理は自動的に行われます。AWS CLI、Tools for Windows PowerShell または AWS でロールを作成した場合は、ロールとインスタンスプロファイルの名前が異なっている可能性があるため、コンソールを使用して削除することはできません。代わりに、AWS CLI、Tools for Windows PowerShell、または AWS API を使用してまずインスタンスプロファイルからロールを削除し、次に(別のステップとして)ロールを削除する必要があります。

AWS マネジメントコンソール を使用してロールを削除するには

  1. 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 を使用する必要があります。詳細については、次のセクションを参照してください。

ロールの削除(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

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

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

ロールの削除(AWS API)

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

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

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

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

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

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

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

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

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