RBAC、チーム、および IAM の統合
IBM Cloud® Identity and Access Management (IAM) は、ユーザー認証を安全に行い、一貫した方法で IBM Cloud のすべてのクラウド・リソースに対するアクセスを制御することを可能にします。 Monitoring インスタンスでは、チームを使用することで、分離されたワークスペースで、定義された範囲のメトリックにユーザーまたはユーザー・グループがアクセスできるようにします。
IAM は、チームと役割の組み合わせを対応付けることができるので、特定のユーザーが特定のメトリックのセットにのみアクセスできるように、また、定義されたアクションのセットを製品内部で実行できるようになります。
チームは、ユーザーが表示できるメトリックを、アカウントのインフラストラクチャー全体ではなく、ユーザーのアプリがデプロイされているインフラストラクチャーに関連するメトリックだけにすることで、セキュリティーを強化します。 例えば、Kubernetes クラスターで開発者のグループに、アプリケーションがデプロイされている 1 つの kubernestes.namespace から取得されたメトリックだけを表示する権限を付与することができます。
Monitoring インスタンスでは、1 つ以上のチームを定義できます。 チームを使用することで、分離されたワークスペースで、定義された範囲のメトリックにユーザーまたはユーザー・グループがアクセスできるようにします。
Monitoring インスタンスには、以下のチームが含まれています。
- Monitor Operations
- Secure Operations
ユーザーにはデフォルトで、monitor operations チームへのアクセス権限、またはインスタンス管理者がデフォルト・チームとして構成したチームへのアクセス権限が付与されます。
-
サービスの管理者は複数のチームを構成できます。デフォルト・チームを変更することもできます。
-
チームごとにカスタムのダッシュボードやアラートのセットを使用して、チームの範囲内にあるデータをモニターできます。
-
チームのユーザーは、チーム管理者が定義した範囲に含まれるデータにアクセスできます。
ユーザーがチームのコンテキストでデータをモニターできるようにするには、そのユーザーに IBM Cloud Monitoring サービスに対するポリシーを付与する必要があります。 そのポリシーにユーザーのチームとサービス権限を指定して、ユーザーがそのチームの範囲内のデータを使用できるようにします。
以下の IAM サービス役割を付与できます。
- ライター: ライター役割は、ダッシュボード、アラート、通知を使用してデータをモニターすること、チームの範囲内にあるリソース (ダッシュボード、アラート、通知など) を管理することをユーザーに許可します。
- リーダー: リーダー役割は、チームの範囲内にあるダッシュボード、アラート、通知を使用してデータをモニターすることをユーザーに許可します。
- 管理者: 管理者役割は、管理権限を付与するインスタンス・レベルの役割です。 ポリシーでこの役割をチームに付与すると、そのチームに所属するユーザーに、インスタンスに対する管理権限が付与されます。
ポリシーと権限を作成するIAM権限を持っている場合、対象サービスのユーザーとして持っているレベルのアクセスのみを付与することができます。 例えば、対象サービスのビューアアクセスを持っている場合、ビューアロールのみを権限に割り当てることができます。 Administratorなどの上位の権限を割り当てようとすると、権限が付与されているように見えるかもしれませんが、対象のサービスに対して持っている最上位の権限(ビューア)しか割り当てられません。
Monitoring サービスを使用するためにユーザーに付与できるユーザー役割を以下の表に示します。
| ユーザー役割 | IAM サービス役割 |
|---|---|
ROLE_USER |
reader |
ROLE_ADVANCED_USER |
writer |
ROLE_ADMIN |
manager |
チームのコンテキストで Monitoring インスタンスを使用するためにユーザーに付与できるチーム役割を以下の表に示します。
| チーム役割 | IAM サービス役割 | チーム |
|---|---|---|
ROLE_TEAM_READ |
reader |
カスタム・チーム |
ROLE_TEAM_EDIT |
writer |
カスタム・チーム |
ROLE_TEAM_ADMIN |
manager |
カスタム・チーム |
ROLE_TEAM_MONITOR_MANAGER |
manager |
Monitor operations |
ROLE_TEAM_SECURE_MANAGER |
manager |
Secure operations |
チームごと、ユーザー・セットごとにさまざまなレベルのデータ・アクセス権限を定義するために、Monitoring UI で追加のチームを定義できます。
1 つ以上のチームへのアクセス権限をユーザーに付与するには、そのユーザーがアクセス権限を必要とする各チームのポリシーを、管理者からユーザーに付与する必要があります。 管理者はチームごとに別個のポリシーを使用することで、モニタリング・インスタンスのデータを使用するためのさまざまなレベルのサービス・アクセスおよび権限を定義できます。
例えば、特定のチームで作業する必要があるユーザーには、以下のポリシーが必要です。
- IBM Cloud のモニタリング・インスタンスの表示をユーザーに許可するために、**「ビューアー」**プラットフォーム役割のポリシー。
- ユーザーに 1 つのチームへのアクセス権限を付与するポリシー。 チームの範囲内にあるデータを使用するためのユーザー権限は、このサービス役割によって決まります。
チームのコンテキストで IBM Cloud Monitoring サービスを使用するための権限をユーザーまたはサービス ID に付与するには、以下の手順を実行します。
前提条件
ユーザー ID には IBM Cloud Monitoring サービスを管理するための管理者プラットフォーム権限が必要です。 アカウント所有者は、ユーザー・アクセスの管理とアカウント・リソースの管理を行う目的で、ユーザーにアカウントへのアクセス権限を付与できます。 詳細はこちら。
ステップ 1. アクセス・グループの作成
アクセス・グループを作成するには、以下を実行します。
- メニュー・バーから、「管理」 > アクセス (IAM) をクリックし、**「アクセス・グループ」**を選択します。
- 「作成」 をクリックします。
- グループの名前と説明 (オプション) を入力して**「作成」**をクリックします。
**「グループの削除 (Remove group)」**オプションを選択してグループを削除することができます。 グループをアカウントから削除すると、すべてのユーザーとサービス ID がグループから削除され、グループに割り当てられたすべてのアクセス権限が削除されます。
CLI を使用してアクセス・グループを作成するには、ibmcloud iam access-group-create コマンドを使用します。
ibmcloud iam access-group-create GROUP_NAME [-d, --description DESCRIPTION]
ステップ 2 Observability UIでMonitoringインスタンスを表示するためのパーミッションを追加
グループをセットアップしたら、共通するアクセス・ポリシーをそのグループに割り当てることができます。 Monitoring インスタンスをプログラム識別情報 UI で表示するための権限を追加する必要があります。
アクセス・グループに設定したポリシーは、そのグループ内のすべてのエンティティー、ユーザー、およびサービス ID に適用されます。
UI またはコマンド・ラインを使用してポリシーを割り当てることができます。
このポリシーを定義するときには、プラットフォーム役割を選択する必要があります。 プラットフォーム管理の役割は、インスタンスの作成と削除、別名、バインディング、および資格情報の管理、およびアクセスの管理を行う能力を含めて、さまざまなアクションをカバーします。 有効なプラットフォーム役割は、管理者、エディター、オペレーター、ビューアーです。
CLI を使用した権限の追加
CLI を使用してアクセス・グループ・ポリシーを作成する場合は、viewer 役割を指定した ibmcloud iam access-group-policy-create コマンドを使用します。
ibmcloud iam access-group-policy-create GROUP_NAME {-f, --file @JSON_FILE | --roles ROLE_NAME1,ROLE_NAME2... [--service-name SERVICE_NAME] [--service-instance SERVICE_INSTANCE] [--region REGION] [--resource-type RESOURCE_TYPE] [--resource RESOURCE] [--resource-group-name RESOURCE_GROUP_NAME] [--resource-group-id RESOURCE_GROUP_ID]}
例えば、次のコマンドを実行してユーザーにビューアー権限を付与できます。
ibmcloud iam access-group-policy-create my-access-group --roles Viewer --service-name my-monitoring-instance --service-instance 99999999-9999-9999-999999
UI を使用した権限の追加
UI を使用してアクセス・グループにポリシーを割り当てるには、以下の手順を実行します。
-
メニュー・バーから、「管理」 > アクセス (IAM) をクリックし、**「アクセス・グループ」**を選択します。
-
アクセス権限を割り当てる先のグループの名前を選択します。
-
アクセスポリシー]>[アクセス権の割り当て]>[リソースへのアクセス権の割り当て]をクリックします。
-
**「IAM サービス」**を選択します。
-
セクション「どのタイプのアクセス権限を割り当てますか?」で、IBM Cloud Monitoring を選択します。
-
「どのサービスにアクセス権限を割り当てますか?」 セクションで、以下のいずれかのオプションを選択します。
すべてのインスタンスを含むようにポリシーの範囲を定義するには、**「すべてのサービス」**を選択します。
ポリシーの範囲を詳細化するには、**「属性に基づいたサービス」**を選択します。 次のオプションのいずれかを選択してください。
オプション 1: 範囲を特定のリソース・グループに設定します。 **「リソース・グループ」**を選択し、リソース・グループを 1 つ選択して、そのリソース・グループに関連付けられているすべてのインスタンスを含むようにポリシーの範囲を定義します。
オプション 2: 範囲を特定のリソース・グループの 1 つのインスタンスに設定します。 **「リソース・グループ」を選択し、該当するリソース・グループを選択します。 次に、「サービス・インスタンス」**を選択し、リソース・グループ内のインスタンスを選択します。
オプション 3: 範囲を 1 つのインスタンスに設定します。 **「サービス・インスタンス」**を選択してインスタンスを選択します。
「Sysdig チーム (Sysdig Team)」 セクションには値を指定しないでください。
-
**「ビューアー」**プラットフォーム役割を選択します。
-
割り当て をクリックします。
ステップ 3。 チームで働くための権限を追加する
次は、チームのコンテキストで Monitoring サービスのデータを使用するための権限をユーザーに付与するポリシーを追加する必要があります。
このポリシーを定義するときには、サービス役割を選択する必要があります。 サービス・アクセスの役割は、ユーザーまたはサービスがサービス・インスタンスに対して実行できるアクションを定義します。 サービス・アクセスの役割は、管理者、ライター、およびリーダーです。
CLI を使用した権限の追加
CLI を使用してアクセス・グループ・ポリシーを作成するには、ibmcloud iam access-group-policy-create コマンドを使用します。
ibmcloud iam access-group-policy-create GROUP_NAME {-f, --file @JSON_FILE | --roles ROLE_NAME1,ROLE_NAME2... [--service-name SERVICE_NAME] [--service-instance SERVICE_INSTANCE] [--region REGION] [--resource-type RESOURCE_TYPE] [--resource RESOURCE] [--resource-group-name RESOURCE_GROUP_NAME] [--resource-group-id RESOURCE_GROUP_ID]}
有効な roles は、Reader、Writer、および Manager です。
JSON ファイルを使用してチーム・ポリシーを作成する必要があります。
例えば、以下のコマンドを実行できます。
ibmcloud iam access-group-policy-create accessGroupName accessGroupGUID --file policy.json
説明
accessGroupNameはアクセス・グループの名前です。accessGroupGUIDはアクセス・グループの GUID です。
コマンド ibmcloud iam access-groups を実行して、アカウント内の名前および対応する GUID のリストを取得できます。
そして、以下の JSON ファイルを使用します。
{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "access_group_id",
"value": "AccessGroupGuid"
}
]
}
],
"roles" : [
{
"role_id" : "crn:v1:bluemix:public:iam::::serviceRole:Reader"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "accountGuid"
},
{
"name": "serviceName",
"value": "sysdig-monitor"
},
{
"name": "serviceInstance",
"value": "instanceGuid"
},
{
"name": "sysdigTeam",
"value": "sysdigTeamID"
}
]
}
]
}
UI を使用した権限の追加
UI を使用してアクセス・グループにポリシーを割り当てるには、以下の手順を実行します。
-
メニュー・バーから、「管理」 > アクセス (IAM) をクリックし、**「アクセス・グループ」**を選択します。
-
アクセス権限を割り当てる先のグループの名前を選択します。
-
アクセスポリシー]>[アクセス権の割り当て]>[リソースへのアクセス権の割り当て]をクリックします。
-
**「IAM サービス」**を選択します。
-
セクション「どのタイプのアクセス権限を割り当てますか?」で、IBM Cloud Monitoring を選択します。
-
『どのサービスにアクセス権限を割り当てますか?』 セクションで、以下の手順を実行します。
-
ポリシーの範囲を詳細化するには、**「属性に基づいたサービス」**を選択します。 次のオプションのいずれかを選択してください。
オプション 1: 範囲を特定のリソース・グループの 1 つのインスタンスに設定します。 **「リソース・グループ」を選択し、該当するリソース・グループを選択します。 次に、「サービス・インスタンス」**を選択し、リソース・グループ内のインスタンスを選択します。
オプション 2: 範囲を 1 つのインスタンスに設定する。 **「サービス・インスタンス」**を選択してインスタンスを選択します。
-
**「Sysdig チーム (Sysdig team)」**を選択します。
-
-
サービス役割を選択します。 サービス役割は、ユーザーがそのチーム内のリソースを表示および管理するために必要な権限を定義します。
-
サービスの管理権限を付与するには、**「管理者」**を選択します。
-
データを表示する権限のみを付与するには、**「リーダー」**を選択します。
-
-
割り当て をクリックします。
ステップ 4: アクセス・グループへのユーザーまたはサービス ID の追加
既存のアクセス・グループにユーザーまたはサービス ID を追加することができます。
アクセス・グループへのユーザーの追加
以下の手順を実行してユーザーを追加します。
- メニュー・バーから、「管理」 > アクセス (IAM) をクリックし、**「アクセス・グループ」**を選択します。
- アクセス権限を割り当てる先のグループの名前を選択します。
- **「ユーザー」タブで「ユーザーの追加」**をクリックします。
- 追加するユーザーをリストから選択して、グループに追加をクリックします。
アクセス・グループへのサービス ID の追加
以下の手順を実行してサービス ID を追加します。
- メニュー・バーから、「管理」 > アクセス (IAM) をクリックし、**「アクセス・グループ」**を選択します。
- アクセス権限を割り当てる先のグループの名前を選択します。
- **「サービス ID」タブをクリックして、「サービス ID の追加」**をクリックします。
- 追加する ID をリストから選択して、**グループに追加 (Add to group)**をクリックします。