はじめに
IBM Cloudのアカウントを新規作成した直後は、アカウント所有者のみが管理権限を持っています。特にサブスクリプション契約では、契約手続きの都合上、実際にITシステムを管理する担当者ではない方がアカウント所有者となる場合があります。そのような場合は、実際に運用を担当する管理者へ適切な権限を付与する必要があります。
運用担当者やチームメンバーを管理者として追加するにはIAM設定が必要ですが、GUIから設定すると複数画面を遷移しながら権限付与やアクセスグループ設定を行う必要があります。
本記事では、IBM Cloud Shell上でCLIを利用し、アクセス・グループの作成から管理者の招待までを簡単に実施する方法を紹介します。操作ミスを防ぐため、招待するユーザーを指定するコマンドと、実際の設定・招待を実施するコマンドを分けており、合計2行のコマンドを実行します。
なぜ Cloud Shell (CLI) で実施する?
CLI(コマンド・ライン・インターフェース)は一見すると文字だけが並ぶ画面で操作しにくい印象がありますが、GUIとは異なりテキストを入力できるところは限られており、使い方を間違えなければ簡単なガイドで利用することができます。
GUIで設定する場合は、以下のように複数の画面を移動しながら操作する必要があります。こうした手順をIBM Cloudに不慣れなユーザーへ正確に伝えるのは意外と難しいため、本記事では再現性の高いCLIによる実施方法を紹介します。
- IBM Cloud コンソール画面へログイン
- IAMへ移動
- アクセス・グループへ移動
- アクセス・グループを作成
- アクセス・ポリシーを作成
- ユーザー招待(アカウント・グループへのアサイン)
実施するコマンド
USERS=(user1@example.com user2@example.com user3@example.com)
GROUP_NAME="AdminAccessGroup" && ibmcloud iam access-group-create "$GROUP_NAME" -d "Full admin access group" && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --resource-type resource-group && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator,Manager && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --account-management && for EMAIL in "${USERS[@]}"; do ibmcloud account user-invite "$EMAIL" --access-groups "$GROUP_NAME"; done
なお、(2)のコマンドは1度実行した後に再実行するとエラーになります。2回目以降はこの記事の最後にある「2回目以降に実施するコマンド」を参照ください。
IBM Cloud Shellの起動と上記コマンドの実行
事前準備
メモ帳やテキストエディットなどのPC上のアプリケーションで招待したいユーザーを指定するコマンドを変更します。USERS=(user1@example.com user2@example.com user3@example.com) をコピー&ペーストして、メモ帳でメールアドレス部分を変更します。メールアドレスは半角英数字で記述し、複数指定する場合は半角スペースで区切ってください。
コマンドの実行
(1) IBM Cloudコンソール (https://cloud.ibm.com/) にログイン
(2) コンソール画面上部右側に表示されるIBM Cloud Shellを起動するためのアイコンをクリックします

クリックすると以下のような画面が表示されます。(長くとも2分以内くらいには次の画面が表示されます。)

以下のような画面が表示されたらCloud Shellの画面が起動できています。

(3) 少し前の事前準備で用意したコマンドを実行します。実行するためにはテキストをコピーしたのちに、IBM Cloud Shellの画面をクリックし、テキストを貼り付け、最後にEnter/Returnキーを押下します。
(4) (2)設定と招待の実施のコマンドを実行します。直下に改めて示した(2)設定と招待の実施の枠の右上にあるコピー用のアイコンをクリックします。
GROUP_NAME="AdminAccessGroup" && ibmcloud iam access-group-create "$GROUP_NAME" -d "Full admin access group" && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --resource-type resource-group && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator,Manager && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --account-management && for EMAIL in "${USERS[@]}"; do ibmcloud account user-invite "$EMAIL" --access-groups "$GROUP_NAME"; done
IBM Cloud Shellの画面をクリックし、テキストを貼り付け、最後にEnter/Returnキーを押下します。
コマンドを実行すると以下のような実行結果が随時表示されていきます。(出力は一部マスクしています。結果が一字一句同じ結果となる必要はありません)
招待された方にメールが届くはずなので、そこからユーザーとしての登録処理を行います。
******@cloudshell:~$ GROUP_NAME="AdminAccessGroup" && ibmcloud iam access-group-create "$GROUP_NAME" -d "Full admin access group" && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --resource-type resource-group && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator,Manager && ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --account-management && for EMAIL in "${USERS[@]}"; do ibmcloud account user-invite "$EMAIL" --access-groups "$GROUP_NAME"; done
Creating access group AdminAccessGroup under account YOUR ACCOUNT NAME as ******@jp.ibm.com...
OK
Name: AdminAccessGroup
ID: AccessGroupId-********-****-****-****-************
Description: Full admin access group
Creating policy for access group AdminAccessGroup under account ******************************** as ******@jp.ibm.com...
OK
Policy 0e9556a3-bb99-4ef5-be68-cd823e014309 for access group AdminAccessGroup was successfully created
Policy ID: 0e9556a3-bb99-4ef5-be68-cd823e014309
Version: 1-3fcebeff8f51da5740cc629c72404de9
Subject: AccessGroupId-********-****-****-****-************
Roles: Administrator
Resources:
Resource Group All resource groups
Memo Policy applies to the resource group
Creating policy for access group AdminAccessGroup under account ******************************** as ******@jp.ibm.com...
OK
Policy f07691d4-7192-4033-b721-f208492ba4b0 for access group AdminAccessGroup was successfully created
Policy ID: f07691d4-7192-4033-b721-f208492ba4b0
Version: 1-9b5d38d8b4d05e08528ca2976800d444
Subject: AccessGroupId-********-****-****-****-************
Roles: Administrator, Manager
Resources:
Service Type All resources in account
Creating policy for access group AdminAccessGroup under account ******************************** as ******@jp.ibm.com...
OK
Policy 879f6552-7e2f-489f-a112-1a8f0824adc0 for access group AdminAccessGroup was successfully created
Policy ID: 879f6552-7e2f-489f-a112-1a8f0824adc0
Version: 1-ee7f378160458b1d97659c97cc873e24
Subject: AccessGroupId-********-****-****-****-************
Roles: Administrator
Resources:
Service Type All account management services
Sending invitation to user1@example.com to join in account ********************************...
OK
Invitation is sent to user1@example.com
Sending invitation to user2@example.com to join in account ********************************...
OK
Invitation is sent to user2@example.com
Sending invitation to user3@example.com to join in account ********************************...
OK
Invitation is sent to user3@example.com
実施したコマンドの説明
(1)招待したいユーザーの指定
USERS=(user1@example.com user2@example.com user3@example.com)
招待したいユーザーのE-mailアドレスを半角空白文字を区切り文字として記述します。この例では3人のユーザーを並べていますが、人数は何人でも構いません。
(2)設定と招待の実施
2つ目のコマンドは1行で記述されていますが、処理内容ごとに分解すると以下のようになります。
- アクセス・グループの名称を "AdminAccessGroup" とする
GROUP_NAME="AdminAccessGroup"
- アクセス・グループを作成する
ibmcloud iam access-group-create "$GROUP_NAME" -d "Full admin access group"
- アクセス・グループにアクセスポリシーとしてすべてのリソース・グループの管理者(Administrator)権限を追加する
ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --resource-type resource-group
- アクセス・グループにアクセスポリシーとしてすべてのIAM対応サービスのプラットフォーム役割の管理者とサービス役割の管理者(Manager)を付与する
ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator,Manager
- アクセス・グループにアクセスポリシーとしてすべてのアクセス管理サービスの管理者権限を付与する
ibmcloud iam access-group-policy-create "$GROUP_NAME" --roles Administrator --account-management
-
(1)招待したいユーザーの指定で指定したE-mailアドレス1つ1つをIBM Cloudのユーザーとして招待し、その際、アクセス・グループ「AdminAccessGroup」にアサイン
for EMAIL in "${USERS[@]}";
do ibmcloud account user-invite "$EMAIL" --access-groups "$GROUP_NAME";
done
2回目以降に実施するコマンド
別のユーザーをさらに招待したい場合には以下のコマンドを実行します。
USERS=(user4@example.com user5@example.com user6@example.com)
GROUP_NAME="AdminAccessGroup" && for EMAIL in "${USERS[@]}"; do ibmcloud account user-invite "$EMAIL" --access-groups "$GROUP_NAME"; done
まとめ
本記事では、IBM Cloudアカウント作成直後に実施しておきたい管理者ユーザーの追加を、IBM Cloud Shellから実行する方法を紹介しました。
特に、契約上の都合でアカウント所有者と実際の運用管理者が異なる場合は、アカウント作成後の早い段階で適切な管理者を追加しておくことが重要です。また、特定の個人だけが管理権限を持つ状態を避けるためにも、複数名の管理者を設定しておくことをお勧めします。

