[JAWS-UG CLI] IAM:#4 IAMグループとIAMユーザの削除 (管理者)

http://jawsug-cli.doorkeeper.jp/events/13796 でのハンズオン資料です。

このハンズオンでは、AWSの管理者として、 [JAWS-UG CLI] IAM:#2 IAMグループとIAMユーザの作成 (管理者) http://qiita.com/tcsh/items/ce2e83430905587806a7 で作成したリソースの削除方法を学びます。

* IAMユーザのIAMグループからの削除
* IAMユーザのパスワード設定削除
* IAMユーザの削除
* グループポリシーの削除
* IAMグループの削除


前提条件
========

* IAMへのフルアクセス権限



1. ユーザのグループからの削除
==========================

削除する対象ユーザを決めます。

```bash:コマンド:
$ IAM_USER_NAME='taro'
```

削除対象ユーザが所属するグループの一覧を表示してみましょう。

```bash:コマンド:
$ aws iam list-groups-for-user --user-name ${IAM_USER_NAME}
```


```json:結果(例):
   {
       "Groups": [
           {
               "Path": "/", 
               "CreateDate": "2014-09-07T08:52:09Z", 
               "GroupId": "AGPAI5KIHK7xxxxxxxxxx", 
               "Arn": "arn:aws:iam::XXXXXXXXXXXX:group/operators", 
               "GroupName": "operators"
           }
       ]
   }
```

taroユーザを、所属するoperatorsグループから離脱させます。

```bash:コマンド:
$ IAM_GROUP_NAME='operators'
```

```bash:コマンド:
$ aws iam remove-user-from-group --group-name ${IAM_GROUP_NAME} --user-name ${IAM_USER_NAME}
```

```text:結果:
   (戻り値なし)
```

taroが所属するグループがなくなったことを確認します。

```bash:コマンド:
$ aws iam list-groups-for-user --user-name ${IAM_USER_NAME}
```

```json:結果(例):
   {
       "Groups": []
   }
```


2. IAMユーザのパスワード設定削除
==============================

IAMユーザのパスワード設定を削除してみましょう。

削除対象IAMユーザのパスワード設定を確認します。

```bash:コマンド:
$ aws iam get-login-profile --user-name ${IAM_USER_NAME}
```

```json:結果(例):
   {
       "LoginProfile": {
           "UserName": "taro", 
           "CreateDate": "2014-09-07T12:01:53Z", 
           "PasswordResetRequired": false
       }
   }
```

削除対象IAMユーザのパスワード設定を削除します。

```bash:コマンド:
$ aws iam delete-login-profile --user-name ${IAM_USER_NAME}
```

```text:結果:
   (戻り値なし)
```

```bash:コマンド:
$ aws iam get-login-profile --user-name ${IAM_USER_NAME}
```

削除されたことを確認します。

```text:結果:
   A client error (NoSuchEntity) occurred when calling the GetLoginProfile operation: Cannot find Login Profile for User taro
```


3. ユーザ削除
==============

[注] アクセスキーを全て削除していないと、ユーザは削除できないようです。


ユーザ一覧を表示します。

```bash:コマンド:
$ aws iam list-users
```

```json:結果(例):
   {
       "Users": [
           {
               "UserName": "taro", 
               "Path": "/", 
               "CreateDate": "2014-09-07T11:01:01Z", 
               "UserId": "AIDAJMUDSVOxxxxxxxxxx",
               "Arn": "arn:aws:iam::XXXXXXXXXXXX:user/taro"
           }
       ]
   }
```

taroユーザを削除します。

```bash:コマンド:
$ aws iam delete-user --user-name ${IAM_USER_NAME}
```

```text:結果:
   (戻り値なし)
```


4. グループポリシ削除
======================

operatorsグループに設定されているグループポリシーを表示します。

```bash:コマンド:
$ aws iam list-group-policies --group-name ${IAM_GROUP_NAME}
```

```json:結果(例):
   {
       "PolicyNames": [
           "s3-full"
       ]
   }
```

グループポリシーを削除してみます。

```bash:コマンド:
$ IAM_GP_NAME='s3-full'
```

```bash:コマンド:
$ aws iam delete-group-policy --group-name ${IAM_GROUP_NAME} --policy-name ${IAM_GP_NAME}
```

```text:結果:
   (戻り値なし)
```

operatorsグループにグループポリシーが設定されていない(削除された)ことを確認します。

```bash:コマンド:
$ aws iam list-group-policies --group-name ${IAM_GROUP_NAME}
```

```json:結果(例):
   {
       "PolicyNames": []
   }
```


5. グループ削除
================

IAMグループの一覧を表示してみます。

```bash:コマンド:
$ aws iam list-groups
```

```json:結果(例):
   {
       "Groups": [
           {
               "Path": "/", 
               "CreateDate": "2014-09-07T08:52:09Z", 
               "GroupId": "AGPAI5KIHK7xxxxxxxxxx", 
               "Arn": "arn:aws:iam::XXXXXXXXXXXX:group/operators", 
               "GroupName": "operators"
           }, 
           {
               "Path": "/", 
               "CreateDate": "2014-09-07T03:37:40Z", 
               "GroupId": "AGPAJYZGCT6xxxxxxxxxx", 
               "Arn": "arn:aws:iam::XXXXXXXXXXXX:group/admin", 
               "GroupName": "admin"
           }
       ]
   }
```


IAMグループを削除します。

```bash:コマンド:
$ aws iam delete-group --group-name ${IAM_GROUP_NAME}
```

```text:結果:
   (戻り値なし)
```


以上で、作成したリソースは一通り削除されました。