IBM Cloud IAM 仮想サーバの操作権限

#目的
IAMによるアクセス権限の付与について、細かい部分が公開されていないので検証してみました。
今回は、Classic Infrastructure内のVirtualServer for Classicデバイスの操作権限です。
**<font color=red>参照権限まで含めた最低限のアクセス権を記載します。</font>**


(1)デバイスのオーダ
(2)リブート
(3)パワーオン/オフ
(4)名前変更
(5)監査ログの表示
(6)サイズ変更
(7)デバイスのキャンセル
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3730333034332f32663164383161382d356364632d323331392d316266642d3962653731623362396332642e706e67-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/9176d866-5a38-df74-1a9f-39b73b8a64a9.png)



##権限がないとどうなる？
アクセス権限がない状態で操作をしようとすると、下記の様にエラーが表示されます。
しかし、これだけではどんな権限が必要なのかわかりませんね。
下の例は、デバイスのキャンセルを実行する際にアクセス権限がなく、エラーとなっている例です。
![スクリーンショット 2020-09-03 19.34.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/2df7a8d5-4fe6-8d43-ef69-769497e4ecd1.png)

##注意してほしい点
権限設定において、下記三箇所のアクセス許可が必要になる。
クラシックインフラストラクチャーの権限変更は、ほぼリアルタイムに変更が行われる。
しかし、アクセスポリシー側の権限は、変更から実際に反映されるまで**<font color=red>おおよそ５分かかる事に注意する。</font>**
場合によってはもっと時間がかかることもあると思われるので、変更後は5~10分ほど待つのが良い。

* クラシックインフラストラクチャーのアクセス権
    * 操作したいデバイスへのアクセス権
* アクセスポリシーのアクセス権

##アクセス権付与の場所について
###クラシックインフラストラクチャーのアクセス権の場所

IBMCloudポータルから上にある、**Manage** -> **Access(IAM)**を選択する。
![IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/9a2a94da-7b93-124a-53e0-77178b84e66f.png)

アクセス権を変更したいユーザを選択します。
![ID_およびアクセス管理_-_IBM_Cloud-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/a424f6d0-82c6-f3ab-c650-77086219f6ed.png)

**クラシックインフラストラクチャー** -> **許可**の中になるカテゴリー毎に権限をチェックボックスで付与し、**適用**を選択
この<font color=red>クラシックインフラストラクチャーのメニューはフリーアカウントでは表示されません。Basic以上が必要</font>
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/365196fa-6c64-636f-fca1-5d68fc6062da.png)


以上で終了です。

###操作したいデバイスへのアクセス権の場所
途中までは一緒です。
**クラシックインフラストラクチャー** -> **デバイス**で操作権限を付与したいホスト名のチェックが必要です。
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/0d28593d-121d-97bb-e4a6-fc6d39ac5406.png)

以上で終了です。

###アクセスポリシーのアクセス権の場所
デフォルトでいくつか役割が用意されていますが、最小限の許可の場合カスタムした役割が必要になります。
**役割** -> **作成**を選択します。

![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/8c5a7515-2ab2-eabb-a618-42d83656b407.png)

**名前**と**ID**を入力し、今回は**Support Center**の権限が必要となるのでこちらを選択します。
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/adf92251-409d-e22f-f14a-bb7064c99286.png)

**必要な権限を選択**し、**作成**します。
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/767f8401-9da7-2c02-7e55-ba393a7b0d65.png)

最後にこの役割をアカウントに紐付けます。
**ユーザー** -> **アクセスポリシー** -> **アクセス権限の割り当て**を選択
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/426fceb0-2a2c-d5c4-1cb9-7605adc95417.png)

**アカウント管理** -> **Support Center** -> **先ほど作成したカスタムの役割**を選択 -> **割り当て**
![ID_およびアクセス管理_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/0b1fd12d-e54c-2be5-9035-a82626b247a9.png)

以上で終了です。





##必要な権限
紫で記載している箇所は、権限が足りていない場合に表示されるエラーの名前

###デバイスのオーダ
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> 許可 -> アカウント
・サーバーの追加

###リブート
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>REMOTE_MANAGEMENT</font>
クラシックインフラストラクチャー -> 許可 -> デバイス 
・IPMIリモート管理

###パワーオン/オフ
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>REMOTE_MANAGEMENT</font>
クラシックインフラストラクチャー -> 許可 -> デバイス 
・IPMIリモート管理

###名前変更
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>HOSTNAME_EDIT</font>
クラシックインフラストラクチャー -> 許可 -> デバイス
・ホスト名/ドメイン名の編集

###監査ログの表示
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>USER_EVENT_LOG_VIEW</font>
クラシックインフラストラクチャー -> 許可 -> アカウント
・イベント、ログの表示

###サイズ変更]
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>チケットの許可が欠落しています</font> 
<font color=purple>TICKET_ADD</font>
アクセスポリシー(役割) -> Supportサービス
・support.case.create
・support.case.list
・support.case.update
これでサイズ変更を押せるようになるが、実際にサイズ変更はできない

**プラス下記の権限が必要**
クラシックインフラストラクチャー -> 許可 -> アカウント
・サービスの追加/アップグレード
・クラウドインスタスの追加/アップグレード

###デバイスのキャンセル
クラシックインフラストラクチャー -> 許可 -> デバイス 
・仮想サーバー詳細の表示

クラシックインフラストラクチャー -> デバイス
・操作対象デバイスのアクセス権があること

<font color=purple>SERVER_CANCEL</font>
クラシックインフラストラクチャー -> 許可 -> アカウント
・サーバーのキャンセル

<font color=purple>TICKET_ADD</font>
アクセスポリシー(役割) -> Supportサービス
・support.case.create
・support.case.list
・support.case.update

<font color=purple>ACCOUNT_SUMMARY_VIEW</font>
アクセスポリシー(役割) -> Biling
・ビューアー権限全て(細かく制御できない)