IBM Cloud Monitoringのアクセス・キー(鍵)情報を表示できるIAMカスタム役割の定義

# はじめに

IBM Cloud Monitoringではデフォルトで定義されているIAM役割ではプラットフォーム役割の管理者(Administrator)権限を付与しないとエージェントに設定するアクセス・キー(鍵)情報を表示することができません。しかしこの権限はサービスインスタンスの作成や削除など、アクセス・キーを表示する以外にも広範な管理権限が付与されています。この記事では開発者や運用担当者がエージェントをシステムに組み込むため、アクセス・キーの表示することだけに特化したカスタム役割を定義して、ユーザーに付与します。

# Cloud Monitoring サービスのアクセス・キー(鍵)の表示

IBM Cloudコンソール上でIBM Cloud Monitoroingのサービスインスタンスを表示し、「アクション」>「鍵の表示」と選択すると鍵がマスクされた状態で表示されます。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/840c13e4-878e-2aa0-c8e8-483ee1c25565.png"/>

アクセス権限を持っている場合は36文字のアクセス・キーがマスクされた状態で表示されます。

<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/4fe13004-45a1-deb9-297e-07d5dd31f2a0.png"/>

アクセス権限を持っていないと8文字のマスクされた文字列が表示されます。目のアイコンをクリックすると「REDACTED」と表示されます。これは鍵が表示されているわけではなく、正しい鍵情報が表示されていない状態を示します。

<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/09787b1e-9f76-2b7b-6d49-ae4496ce3a75.png"/>

# IAMのカスタム役割の作成と定義

IAMポリシーを作成する際には通常はすでに定義されている役割を選択します。定義済みの役割にどのようなポリシーが含まれているかはコンソール上の「管理」>「アクセス(IAM)」>「役割」から表示できます。
この画面では定義済みのポリシーをベースにカスタム役割を作成することができます。画面の「作成」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/892b5b1b-8fa7-c599-a85a-0b6ed14ace65.png"/>


今回の鍵（アクセス・キー）を表示させるためには以下の4つのポリシーを設定する必要があるようです。4つのポリシーについて明文化されていないものの、実際に稼働させてみるとこれらをすべて付与した場合には鍵が正しく表示されます。
- resource-controller.key.manager_retrieve
- resource-controller.key.retrieve
- resource-controller.credential.retrieve_all
- sysdig-monitor.token.view


それでは画面でカスタム役割を設定していきます。
まずサービスのリストから「IBM Cloud Monitoring with Sysdig」を選択します。
次に名称とIDは決められた範囲内で任意の文字列を指定します。私の例では名称を「CustomKeyViewer」、IDを「Customkeyviewer」としています。
画面をスクロールするとポリシーを設定する表があるので、各ポリシーの「追加」をクリックしてチェックアイコンが表示される状態で、カスタム役割でそのポリシーが含まれます。
設定が終わったら、画面右下の「作成」をクリックして作成を完了します。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/b9e240e4-f8b6-f88b-13ca-15de6e00f03d.png"/>

表で「追加」を指定した状態
<img width="500" alt="表で「追加」を指定した状態" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/e48c6843-6aae-79bc-f308-09f137aa7826.png"/>

# アクセス・グループの作成と設定

これでカスタム役割の作成が終わったので、あとはアクセス・グループもしくはユーザー個人にこの役割を割り当てます。この記事では新しいアクセス・グループを作成します。

アクセス・グループの編集ページはコンソール上の「管理」>「アクセス(IAM)」>「アクセス・グループ」からアクセスできます。
新しいアクセス・グループを作成するには「作成」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/fe6b2d50-522e-c49a-1cd1-66dce244b2ba.png"/>

アクセス・グループの名称を入力し、「作成」をクリックします。

<img width="400" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/e7b038f4-fe00-f15c-5ac5-78c85f203a4c.png"/>

アクセス・グループの編集ページに遷移するので、「アクセス」タブを選択し、「アクセス権限の割り当て」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/27b68a03-ab8e-1ce9-99d1-4ec117b0028d.png"/>

ここからは入力に応じて画面の表示が変わります。
まず、「サービス」のリストから「IBM Cloud Monitoring with Sysdig」にチェックをいれ、「次へ」をクリックします。
次にその下に表示される「リソース」は「すべてのリソース」にチェックが入っていることを確認して「次へ」をクリックします。
その下の表示される「役割とアクション」では先ほど作成したカスタム役割が カスタム・アクセス として表示されるので、チェックを入れ、画面下部にある「追加」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/ea35a789-e055-7903-cc30-13c8e1f7a83d.png"/>

画面右側の「アクセス・サマリー」に「IBM Cloud Monitoring with Sysdigサービス」の「CustomKeyViewer」が含まれていることを確認して「割り当て」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/e05019c9-311d-fe92-549a-05af3d0794f7.png"/>

次にアクセス・グループにメンバーを追加します。役割を付与したいメンバーを追加していきます。
「ユーザー」タブをクリックし、表の「追加」をクリックします。

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/f9b77228-3b4e-2bca-3206-6f4be229ac42.png"/>

追加したいメンバーにチェックを入れ、「グループに追加」もしくは「追加」をクリックします

<img width="900" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/78682019-1782-4ebd-c0fa-4d5a05b59ee6.png"/>


# 最後に鍵を表示できるか確認

カスタム役割を付与したユーザーでIBM Cloudにログインし、IBM Cloudコンソール上でIBM Cloud Monitoroingのサービスインスタンスを表示し、「アクション」>「鍵の表示」と選択します。
このように36桁のマスクされた文字が表示されれば期待通りにアクセス・キー（鍵）を取得できています。通常アクセス・キーはMonitoringサービスのエージェントのセットアップ時に利用するので、この値を使ってエージェントを導入していきます。（アクセスキーは他人に漏らしてはいけない機密度の高い情報なので、取扱に気をつけましょう。）

<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83689/697962f9-76d6-32a6-a9c7-73ee315a25d4.png"/>


# 最後に

今回は特定の操作に絞って操作ができるようにカスタム役割を作成して、アクセスポリシーを付与しました。定義済みの役割に与えている権限が強すぎる場合にはこのようにカスタム役割を利用することで、ユーザーに強すぎる権限を付与することを防ぎ、安心してアカウントを運営することが可能になります。

また、そもそもIAMにおいて「アカウント管理サービス」の「管理者」などの権限を付与されたユーザーでないと、IAMのカスタム役割やアクセスグループの設定ができません。権限が不足していて実施できない場合にはアカウントの管理をされている方に相談してみてください。

# 参考情報
カスタム役割の作成 [IBM Cloud Docs](https://cloud.ibm.com/docs/account?topic=account-custom-roles&interface=ui)
アクセスグループのセットアップ [IBM Cloud Docs](https://cloud.ibm.com/docs/account?topic=account-groups&interface=ui)