企業管理のアクセスグループテンプレートの作成
子アカウントを多数抱える企業では、各アカウントのアクセスグループを手動で設定するのは時間がかかり、エラーが発生しやすい作業です。 企業管理のアクセスグループテンプレートを使用して時間を節約し、すべてのアカウントで一貫性を確保します。
企業管理者が子アカウントにアクセスグループテンプレートを割り当てると、各アカウントに企業管理アクセスグループが作成されます。 テンプレートに追加した関連属性(ポリシー、メンバー、動的ルールなど)が含まれます。
メンバー
企業アカウントでアクセスグループテンプレートを作成する際、そのグループのメンバーに権限を付与する関連アクセスポリシーのセットとともに、企業ユーザーおよびサービスIDを含めることができます。 アクセスグループテンプレートを追加したユーザーは、テンプレートが割り当てられた子アカウントに招待されなければアクセスできません。 次に、テンプレートを割り当てるターゲットアカウントのアクセスグループに、ユーザーが自動的に追加されます。
特定のアイデンティティ属性に基づいて、子アカウントのフェデレーションユーザーを企業管理のアクセスグループに自動的に追加する動的なルールをアクセスグループテンプレートに設定します。
デフォルトでは、子アカウントのアクセスグループ管理者は、自アカウント内の企業管理アクセスグループにメンバーを追加することはできません。 この機能を有効にするには、エンタープライズアカウントの管理者が、アクションコントロールを使用してアクセスグループテンプレートでこの動作を設定する必要があります。 このアクションコントロールを有効にすると、アクセスグループテンプレートで定義されていないメンバーであっても、アクセスグループ管理者は自分のアカウントでグループにメンバーを追加できるようになります。 詳細は、「メンバーの アクションコントロール 」を参照してください。
開始前に
-
企業管理のIAMテンプレートが企業をより安全にする仕組みについては 、「企業管理のIAMアクセス機能の仕組み」 を参照してください。
-
企業管理のIAMテンプレートを作成し、割り当てるには、エンタープライズアカウントのメンバーである必要があります。
-
企業管理のIAMテンプレートを作成するには、次のアクセス権が割り当てられていることを確認してください
- すべての アカウントにおいて、「テンプレート管理者」ロールを付与されたポリシー
-
企業管理のIAMテンプレートを子アカウントに割り当てるには、次のアクセス権が割り当てられていることを確認してください
- すべてのIAMアカウント管理サービスにおけるテンプレート割り当て管理者の役割を持つポリシー
- エンタープライズサービスで少なくともビューアーの役割を持つポリシー
デフォルトでは、アカウント所有者を含め、テンプレート管理者またはテンプレート割当管理者のロールを持つユーザーはいません。
-
貴社内の新規および既存のアカウントは、企業管理のIAMにオプトインする必要があります。 詳細については 、「企業管理のIAMへのオプトイン 」を参照してください。
アクセスグループのテンプレートの作成
子アカウントを多数お持ちの場合、アカウント間で共通のアクセス要件がある場合、または厳格なセキュリティ要件がある場合は、アクセスグループテンプレートの使用をご検討ください。
アクセスグループのテンプレートを作成するには、以下の手順を実行してください
-
IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
-
「作成」 をクリックします。
-
企業ユーザー向けのアクセスグループテンプレートの目的を説明する名前と説明を入力してください。
-
子アカウントユーザー向けの企業管理アクセスグループの目的を説明する名称と説明を入力します。 アカウント内の既存のアクセスグループと重複しない、一意のアクセスグループ名を使用してください。
アカウントに競合するアクセスグループ名が含まれている場合、テンプレートを割り当てるとエラーが発生します。
-
「作成」 をクリックします。
(オプション)メンバーを追加する
テンプレートに追加するエンタープライズメンバーは、エンタープライズアカウントと子アカウントの両方に存在していなければなりません。 テンプレートを割り当てる子アカウントに企業ユーザーがまだメンバーとして登録されていない場合は、そのユーザーを子アカウントに追加します。
子アカウントのアクセスグループ管理者は、 メンバーの追加操作コントロールを有効にすると、自分のアカウントのアクセスグループにメンバーを追加することができます。 このようにすれば、子アカウントのアクセスグループ管理者のメンバーシップ管理を委任することができます。
アクセスグループテンプレートに企業メンバーを追加するには、以下の手順に従います
-
IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
-
アクセスグループのテンプレートを選択してください。
-
[メンバー] > [追加] をクリックします。
-
アクセスが必要なユーザーを選択します。
-
追加 をクリックします。
-
サービス ID を追加するには、[サービス ID] > [追加 ] をクリックします。
-
子アカウントでアクセスが必要なサービスIDを選択します。
スクリプトを使用するチームは、アカウント設定の自動化を支援するためにサービスIDを追加することがあります。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、そのアカウント内の企業管理アクセスグループのメンバーを追加または削除することはできません。 企業ユーザーとしてテンプレートに追加できないアカウントのメンバーを追加できるように、メンバーの追加を許可するのも良いでしょう。 アクセスグループの管理者が、アクセスグループのメンバーが組織を去った際に追加したメンバーをいつでも削除することができます。
デフォルトの動作を変更するには、以下の手順を実行してください
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- 「 メンバー 」をクリックしてください。
- アクセスグループの管理者が自分のアカウントでエンタープライズ管理のアクセスグループにメンバーを追加できるようにするには 、[メンバーを追加] のアクションコントロールを [はい] に設定します。 アクセスグループの管理者が追加したメンバーは、管理者が削除することができます。
- アクセスグループの管理者が、企業によって追加されたメンバーをアカウント内の企業管理アクセスグループから削除できるようにするには 、「メンバーの削除」 のアクションコントロールを「はい」に設定します。 このアクション制御は、アクセスグループの管理者がグループに追加したメンバーには影響しません。
(オプション)動的ルールを追加する
特定のID属性に基づいて、 アカウントのフェデレーションユーザーをエンタープライズ管理のアクセスグループに自動的に追加する動的なルールを作成できます。 アイデンティティプロバイダー( IdP )内で設定され、ログイン時にユーザーのフェデレーションIDとともに渡されるデータと一致しなければならない条件を設定します。 動的ルールを追加する前に、 外部アイデンティティプロバイダーからの認証を有効にする 必要があります。
-
IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
-
アクセスグループのテンプレートを選択してください。
-
[ 動的ルール] > [追加 ] をクリックします。
-
動的ルールに、そのルールによってアクセスグループに追加されるユーザーの種類を説明する名前を付けます。
-
認証方法として、「 IBMid によるフェデレーションユーザー 」または「 IBM Cloud® App ID によるフェデレーションユーザー 」を選択し、ID プロバイダー( IdP )を入力してください。
-
IdP のデータに基づいて条件を追加し、どのフェデレーションユーザーがグループに追加されるかを定義します。
- **「条件の追加」**をクリックすると、複数の条件を定義できます。 連合ユーザーは、アクセスグループのメンバーシップを取得するには、すべての条件を満たす必要があります。 条件の作成に使用されるフィールドについて詳しくは、IAM 条件プロパティーを参照してください。
-
セッションの時間を時間単位で設定します。
この期間が経過すると、アクセス・グループのメンバーシップは取り消されます。 アクセス・グループのメンバーシップを更新するには、ユーザーは再度ログインする必要があります。
アクション・コントロール
デフォルトでは、アクセスグループの管理者は、企業管理のアクセスグループの動的ルールの追加、削除、更新を行うことはできません。
ルールの追加に関するデフォルトの動作を変更するには、以下の手順を実行してください
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- 動的ルールをクリックします。
- アクセス グループ管理者が自分のアカウント内のエンタープライズ管理アクセス グループに動的ルールを追加できるようにするには、「動的ルールの追加のアクション コントロール」を 「はい」 に設定します。 アクセスグループの管理者は、自身が追加した動的ルールを削除または更新することができます。
企業管理ルールの削除と更新のデフォルトの動作を変更するには、以下の手順を実行します
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- 動的ルールをクリックします。
- アクセス グループ管理者が、企業によって追加された、自分のアカウント内の企業管理アクセス グループから動的ルールを削除できるようにするには、 動的ルールの削除のアクション コントロールを [はい] に設定します。 このアクション制御は、アクセスグループの管理者がグループに追加した動的ルールには影響しません。
- 「動的ルールの更新」 のアクションコントロールを「はい」に設定すると、アクセスグループの管理者が、企業によって追加されたアカウント内の企業管理アクセスグループの動的ルールを更新できるようになります。 このアクション制御は、グループに追加された子アカウントのグループ管理者にアクセスする動的ルールには影響しません。
- 特定の動的ルールに対するアクションコントロールを設定します。
- 動的ルールをクリックします。
- 子アカウントのアクセスグループ管理者にこの特定の動的ルールの削除を許可するには、 動的ルールの削除のアクションコントロールを「はい」に設定します。
- 子アカウントのアクセスグループ管理者にこの特定の動的ルールの更新を許可するには 、[動的ルールの更新] のアクションコントロールを [はい] に設定します。
- 保存 をクリックします。
- 動的ルールをクリックします。
(オプション)アクセスポリシーを追加する
アクセスポリシーでは、企業管理のアクセスグループのメンバーに子アカウントへのアクセスを許可します。
-
IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
-
アクセスグループのテンプレートを選択してください。
-
アクセス > 追加をクリックします。
-
既存のポリシーテンプレートを選択し 、「追加」 をクリックします。
-
または 、「作成」をクリックして新しいポリシーテンプレートを作成します。
-
割り当てたいポリシーの名前と説明を入力してください。
アクセスグループテンプレート用に設定するすべてのポリシーで、ポリシーテンプレートを作成します。 他のエンタープライズIAMテンプレートでアクセス権を割り当てるために、ポリシーテンプレートを参照することができます。
-
サービスまたはサービスのグループを選択し、[ 次へ] をクリックします。
-
アクセス範囲を「 すべてのリソース 」にするか、属性に基づいて 「特定のリソース 」を選択し、「 次へ 」をクリックします。
-
ロールとアクション 」セクションで、アクセス範囲を定義するロールを選択します。 ポリシーテンプレートフロー内でカスタムロールテンプレートを作成し、選択したサービスの既存のカスタムロールテンプレートからカスタムロールを選択することもできます。
- アクションのカスタムの組み合わせを定義するには、 カスタムロールの作成をクリックします。
- テンプレート名を入力します。
- (任意)テンプレートの説明を入力してください。
- カスタムロールの名前を入力してください。
- カスタムロールのIDを入力してください。
- (任意)カスタムロールの説明を入力してください。
- アクションを選択し、 作成をクリックする。 カスタムロールは、ポリシーで既に選択されている他のロールと一緒に一覧表示され、選択されます。
- (オプション)ポリシーでアクセスを許可したい場合を指定する条件を追加します。
検索バーを使用して、特定のアクションをサポートするロールを検索します。 例えば、 read、 edit、 viewを検索すると、これらのアクションが適用されるロールのリストが表示されます。
-
-
追加 をクリックします。
アクセスポリシーを削除する
テンプレートがコミットされ、割り当てられる前にポリシーを削除することができます。
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- クリックしてアクセス
- 削除したいポリシーのアクションアイコンをクリックします。
- 「削除」 をクリックします。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、企業管理のアクセスグループにアクセスポリシーを追加できません。 アクセスグループの管理者がポリシーを追加できるようにするには、以下の手順を完了します
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- クリックしてアクセス
- 子アカウントのアクセスグループ管理者が、アカウント内の企業管理アクセスグループにアクセスポリシーを追加できるようにするには、 ポリシーの追加に対するアクションコントロールを「はい」に設定します。
アカウント内の企業管理アクセスグループにアクセスグループ管理者が追加したポリシーは、削除や更新も可能です。
テンプレートの詳細を更新する
テンプレートをコミットする前であれば、いつでもテンプレート名、アクセスグループ名、説明を更新することができます。 テンプレートの詳細を更新するには、以下の手順に従ってください:
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- 更新するアクセスグループテンプレートを選択します。
- 詳細セクションの 編集 アイコン
をクリックします。
- テンプレート名、アクセスグループ名、説明文を更新します。
- 保存 をクリックします。
テンプレートをコミットした後で更新が必要な場合は、新しいバージョンを作成してください。
アクセスグループテンプレートの確認
アクセスグループテンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 これにより、テンプレート割り当て管理者が、お客様が準備完了を確認したときにのみバージョンを割り当てていることを確実にすることができます。
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- 確認したいアクセスグループテンプレートを選択します。
- **「レビュー」**をクリックします。
- アクセスグループテンプレートが正しく設定されていることを確認してください。
- バージョンを変更できないことを確認するために、チェックボックスをクリックします。
- **「コミット」**をクリックします。
子アカウントへのアクセスグループテンプレートの割り当て
自社の子アカウントにアクセスグループテンプレートを割り当てます。
IAMテンプレートは、親アカウントではなく子アカウントに割り当てることはできます。
-
「アカウントの割り当て 」をクリックします。
-
アクセスグループテンプレートを割り当てるアカウントおよびアカウントグループを選択します。
テンプレートを割り当てる子アカウントごとに、企業管理のアクセスグループを作成します。 子アカウントのユーザーは、グループにエンタープライズ管理の タグが付いていることで、アクセスグループがエンタープライズ管理のIAMテンプレートから作成されたものであることを判断できます。
-
割り当て をクリックします。
割り当てに失敗した場合は、 [再試行] をクリックします。
新しいバージョンを作成する
コミット済みまたは割り当て済みのアクセスグループテンプレートを変更する場合は、新しいバージョンを作成してください。 最新のバージョンを基に新しいバージョンを作成したり、別のバージョンを選択して作成したりすることができます。
アクセスグループテンプレートの新しいバージョンを作成するには、以下の手順に従います
-
IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
-
アクセスグループのテンプレートを選択してください。
-
新しいバージョンアイコンをクリックします。
。
-
新しいバージョンのベースとして使用したいバージョンを選択します。
-
新しいテンプレート名と説明を入力するか、現在使用中のものをそのまま使用します。
新しいテンプレート名を入力すると、このバージョンとそれ以前のすべてのバージョンのテンプレート名が更新されます。 テンプレートの説明は、バージョンごとに個別に保存されます。
-
新しいアクセスグループ名と説明を入力するか、現在使用中のものをそのまま使用します。
新しいアクセス・グループ名を入力すると、新しいバージョンを割り当てた後に、子アカウントに表示されていた以前のアクセス・グループ名が置き換えられます。
-
新しいバージョンに引き継ぎたいオブジェクトを選択します。
- (オプション) メンバー を選択します。
- (任意)「 動的ルール 」を選択します。
- (オプション )「アクセス」 を選択します。
-
「作成」 をクリックします。
-
設定について、その他必要な調整を行ってください。
-
「レビュー」 をクリックし、新しいバージョンをコミットします。 詳細は 、「アクセスグループテンプレートの確認 」を参照してください。
アクセスグループテンプレートの新しいバージョンを割り当てるには、以下の手順に従います
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- 作業するテンプレートの テーブルが拡張する アイコン
をクリックします。
- 現在子アカウントに割り当てられているバージョンを選択します。
- 「割り当て」 をクリックします。
- 別のバージョンを割り当てたいアカウントまたはアカウントグループの割り当てで 、「更新」 をクリックします。
- 「 バージョンを選択 」をクリックしてください。
- 現在のバージョンを置き換えたいバージョンを選択します。
- 更新 をクリックします。
- 異なるバージョンを割り当てたい各アカウントまたはアカウントグループに対して、これらの手順を繰り返します。
割り当てた新しいテンプレートバージョンが古いバージョンに置き換わります。 新しいバージョンの割り当てについて、さらに詳しく知る。
割り当ての削除
テンプレートが割り当てられている1つ以上のアカウントから、テンプレート割り当てを削除することができます。 テンプレートが意図したように動作していない場合は、そうした方が良いでしょう。 アカウントからテンプレート割り当てを削除すると、デフォルトではテンプレートの以前のバージョンが復元されます。 削除した割り当てがテンプレートの最初のバージョンまたは唯一のバージョンの場合、子アカウントのアクセスグループも削除されます。
割り当てを削除するには、以下の手順に従ってください:
- IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
- アクセスグループのテンプレートを選択してください。
- 「更新 」をクリックします。
- 1つまたはいくつかのアカウントから割り当てを削除するには、テンプレート割り当てを削除したいアカウントの選択を解除します。
- テンプレートが割り当てられているすべてのアカウントから割り当てを解除するには 、「すべて解除」 をクリックします。
API を使用してアクセスグループテンプレートを作成する
多数のアカウントある場合、 アカウント間で共通のアクセス要件がある場合、厳格なセキュリティ要件がある場合、アクセスポリシーを変更する必要がある場合は、アクセスグループテンプレートの使用を検討してください。
次のリクエスト例に示すように、 IAM アクセスグループ API を呼び出すことで、プログラムでアクセスグループテンプレートを作成できます。 この例では、子アカウント内のすべてのIAMアカウント管理サービスへの管理者アクセス権限を必要とするマネージャー向けのアクセスグループテンプレートを作成し、アクセス管理を可能にします
{
curl -X POST --location
--header "Authorization: Bearer {iam_token}"
--header "Accept: application/json" --header "Content-Type: application/json"
--data "name": "IAM Admin Group template",
"description": "This access group template allows admin access to all IAM platform services in the account.",
"account_id": "06a2e9d0614447e295824de8c8df7b4f",
"access_group": {
"name": "IAM Admin Group",
"description": "This enterprise-managed access group allows admin access to all IAM platform services in the account. Managers are dynamically added.",
"members": {
"users": [
"IBMid-1234",
"IBMid-2345"
],
"services": [
"iam-ServiceId-123",
"iam-ServiceId-234"
],
"action_controls": {
"add": "true",
"remove": "false"
}
},
"assertions": {
"rules": [
{
"name": "Manager group rule",
"expiration": 12,
"realm_name": "https://idp.example.org/SAML2",
"conditions": [
{
"claim": "isManager",
"operator": "EQUALS",
"value": "true"
}
],
"action_controls": {
"remove": "true",
"update": "false"
}
}
],
"action_controls": {
"add": "false"
}
},
"action_controls": {
"access": {
"add": true
}
}
},
"policy_template_references": [
{
"id": "policyTemplateId-123",
"version": "1"
},
{
"id": "policyTemplateId-234",
"version": "1"
}
],
"externals": {
"profile_template_ids": [
"profileTemplateId-123",
"profileTemplateId-234"
]
}
}
(オプション)メンバーを追加する
前の例では、IBMIDを指定することで、2つのエンタープライズユーザーと2つのサービスIDがアクセスグループテンプレートに追加されました。
テンプレートに追加するエンタープライズメンバーは、テンプレートを割り当てるエンタープライズアカウントと子アカウントの両方に存在していなければなりません。 ユーザーがすでにテンプレートを割り当てた子アカウントのメンバーでない場合は、その子アカウントに追加することができます。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、そのアカウント内の企業管理アクセスグループのメンバーを追加または削除することはできません。 企業ユーザーとしてテンプレートに追加できないアカウントのメンバーを追加できるように、メンバーの追加を許可するのも良いでしょう。 アクセスグループの管理者が、アクセスグループのメンバーが組織を去った際に追加したメンバーをいつでも削除することができます。
先の例では、 action_controls が子アカウントのアクセスグループ管理者に、自身のアカウントからメンバーを追加することを許可しています。これは、 add が true に設定されており、エンタープライズメンバーの削除が制限されているためです。 remove が false に設定されているためです。
(オプション)動的ルールを追加する
特定のID属性に基づいて、 アカウントのフェデレーションユーザーをエンタープライズ管理のアクセスグループに自動的に追加する動的なルールを作成できます。 IDプロバイダー( IdP )内で設定され、ログイン時にユーザーのフェデレーテッドIDとともに渡されるデータが満たすべき条件を設定します。 動的ルールを追加する前に、 外部アイデンティティプロバイダーからの認証を有効にする 必要があります。
先の例では、 assertions セクションで指定された rules によって、マネージャーがグループに動的に追加されます。 動的に追加されたユーザーのセッション時間は、 12 時間に設定されています。 この期間が経過すると、アクセス・グループのメンバーシップは取り消されます。 アクセス・グループのメンバーシップを更新するには、ユーザーは再度ログインする必要があります。
アクション・コントロール
デフォルトでは、アクセスグループの管理者は、企業管理のアクセスグループの動的ルールの追加、削除、更新を行うことはできません。 ダイナミックルールには、2段階のアクションコントロールがあります
- アクセスグループの管理者が特定の動的ルールを削除または更新できるかどうかを決定する、各特定のルールに対するアクション制御
- アクセスグループの管理者がアクセスグループの動的ルールを追加、削除、更新できるかどうかを決定するアクション制御
両方のレベルが設定されている場合、特定の動的ルールに対する内部レベルのアクション制御が優先されます。
先の例では、内部レベルのアクションコントロールにより、 remove が true に設定され、アクセスグループの管理者がルールを削除できるようになっています。 update が false に設定されているため、アクセスグループの管理者はルールを更新できません。 外部リールアクション制御 add が false に設定されているため、アクセスグループの管理者が新しい動的ルールを追加することができません。
(オプション)アクセスポリシーを追加する
アクセスポリシーは、子アカウント内の企業管理アクセスグループのメンバーにアクセス権を付与します。 先の例では、既存のポリシーテンプレートは、 policy_template_references を使用してアクセスグループテンプレートでアクセスを割り当てます。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、企業管理のアクセスグループにアクセスポリシーを追加できません。 先の例では、 add に対する access のアクション制御が true に設定されているため、子アカウントの管理者は、自分のアカウント内のグループにポリシーを追加することができます。
APIを使用してアクセスグループテンプレートを更新する
テンプレートがコミットされる前であれば、いつでもアクセスグループテンプレートを更新できます。
アクセスグループテンプレートを更新するには、次のサンプルリクエストに示されているように 、IAMポリシー管理APIを 呼び出します
curl -X PUT --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "If-Match: {if_match}" --header "Content-Type: application/json" --data '{ "name": "IAM Admin Group template 2", "description": "This access group template allows admin access to all IAM platform services in the account.", "group": { "name": "IAM Admin Group 8", "description": "This access group template allows admin access to all IAM platform services in the account.", "members": { "users": [ "IBMid-665000T8WY" ], "services": [ "iam-ServiceId-e371b0e5-1c80-48e3-bf12-c6a8ef2b1a11" ], "action_controls": { "add": true, "remove": false } }, "assertions": { "rules": [ { "name": "Manager group rule", "expiration": 12, "realm_name": "https://idp.example.org/SAML2", "conditions": [ { "claim": "blueGroup", "operator": "CONTAINS", "value": "test-bluegroup-saml" } ], "action_controls": { "remove": false, "update": false } } ], "action_controls": { "add": false } }, "action_controls": { "access": { "add": false } } }, "policy_template_references": [ { "id": "policyTemplateId-123", "version": "1" }, { "id": "policyTemplateId-234", "version": "1" } ] }' "{base_url}/v1/group_templates/{template_id}/versions/{version_num}"
APIを使用してアクセスグループテンプレートをレビューし、コミットする
アクセスグループテンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 これにより、テンプレート割り当て管理者が、お客様が準備完了を確認したときにのみバージョンを割り当てていることを確実にすることができます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、確認およびコミットするテンプレートの
idをメモしてください。curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_templates?account_id=accountID-123&limit=50&offset=0&verbose=false" -
テンプレートバージョンを取得し、応答を確認します。
curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_templates/{template_id}/versions/{version_num}" -
テンプレートのバージョンをコミットする。
curl -X POST --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "If-Match: {if_match}" "{base_url}/v1/group_templates/{template_id}/versions/{version_num}/commit"
APIを使用して子アカウントにアクセスグループテンプレートを割り当てる
自社の子アカウントにアクセスグループテンプレートを割り当てます。
IAMテンプレートは、親アカウントではなく子アカウントに割り当てることはできます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、子アカウントに割り当てるテンプレートの
idをメモしてください。curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_templates?account_id=accountID-123&limit=50&offset=0&verbose=false" -
アクセスグループテンプレートを
AccountまたはAccountGroupに割り当てます。curl -X POST --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" --data '{ "template_id": "AccessGroupTemplateId-4be4", "template_version": "1", "target_type": "AccountGroup", "target": "0a45594d0f-123" }' "{base_url}/v1/group_assignments"
API を使用して新しいバージョンを作成する
コミット済みまたは割り当て済みのアクセスグループテンプレートを変更する場合は、新しいバージョンを作成してください。 新しいテンプレート名を入力すると、このバージョンとそれ以前のすべてのバージョンのテンプレート名が更新されます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、新しいバージョンを作成したいテンプレートの
idをメモしてください。curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_templates?account_id=accountID-123&limit=50&offset=0&verbose=false" -
新しいバージョンを作成し、変更したい箇所をすべて更新します。
curl -X POST --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" --data '{ "name": "IAM Admin Group template 2", "description": "This access group template allows admin access to all IAM platform services in the account.", "group": { "name": "IAM Admin Group 8", "description": "This access group template allows admin access to all IAM platform services in the account.", "members": { "users": [ "IBMid-123", "IBMid-234" ], "services": [ "iam-ServiceId-345" ], "action_controls": { "add": true, "remove": false } }, "assertions": { "rules": [ { "name": "Manager group rule", "expiration": 12, "realm_name": "https://idp.example.org/SAML2", "conditions": [ { "claim": "blueGroup", "operator": "CONTAINS", "value": "test-bluegroup-saml" } ], "guardrails": { "remove": false, "update": false } } ], "action_controls": { "add": false } }, "action_controls": { "access": { "add": false } } }, "policy_template_references": [ { "id": "policyTemplateId-123", "version": "1" }, { "id": "policyTemplateId-234", "version": "1" } ] }' "{base_url}/v1/group_templates/{template_id}/versions"
アクセスグループテンプレートの新しいバージョンを作成し、設定したら、それを確認し、子アカウントに割り当てます。 以前のバージョンのアクセスグループテンプレートを含む子アカウントに新しいバージョンを割り当てると、シームレスに割り当てを更新することができます。 詳細については 、「APIを使用した子アカウントへのアクセスグループテンプレートの割り当て 」を参照してください。
API を使用して割り当てを削除する
テンプレートが割り当てられているアカウントまたはアカウントグループから、テンプレート割り当てを削除することができます。 テンプレートが意図したように機能していない場合や、もはや必要ない場合には、そうした方が良いでしょう。 アカウントからテンプレート割り当てを削除すると、デフォルトでは以前のバージョンのテンプレートが復元されます。 削除した割り当てがテンプレートの最初のバージョンまたは唯一のバージョンの場合、子アカウントの企業管理アクセスグループが削除されます。
割り当てを削除するには、以下の手順に従ってください:
-
課題をリストアップし、削除したい課題の回答に
AccessGroupAssignmentIdと記載してください。curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_assignments?account_id=accountID-123&limit=50&offset=0" -
割り当てを削除します。
curl -X DELETE --location --header "Authorization: Bearer {iam_token}" "{base_url}/v1/group_assignments/{assignment_id}"
API を使用してバージョンを削除する
アクセスグループテンプレートバージョンを削除する前に、そのバージョンのテンプレートに対するすべての割り当てを削除する必要があります。 特定のバージョンを削除するには、以下の手順に従ってください
-
企業アカウントのアクセスグループテンプレートをリストアップし、削除したいテンプレートバージョンの応答に記載されている
AccessGroupTemplateIdIDとバージョンをメモします。curl -X GET --location --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" "{base_url}/v1/group_templates?account_id=accountID-123&limit=50&offset=0&verbose=true" -
バージョンを削除する。
curl -X DELETE --location --header "Authorization: Bearer {iam_token}" "{base_url}/v1/group_templates/{template_id}/versions/{version_num}"
CLI を使用してアクセスグループテンプレートを作成する
多数のアカウントある場合、 アカウント間で共通のアクセス要件がある場合、厳格なセキュリティ要件がある場合、または企業内のアクセスポリシーを変更する必要がある場合は、アクセスグループテンプレートの使用を検討してください。
以下の手順に従って、アクセスグループのテンプレートを作成できます
-
アクセスグループテンプレートの定義を記載したJSONファイルを作成します。 使用できる属性の詳細については 、IAM アクセスグループ API を 参照してください。 次の例では、子アカウントのすべてのIAMアカウント管理サービスへの管理者アクセス権限を必要とする管理者のためのアクセスグループテンプレートを作成します。これにより、アクセス管理が可能になります
{ "name": "IAM Admin Group template", "description": "This access group template allows admin access to all IAM platform services in the account.", "account_id": "06a2e9d0614447e295824de8c8df7b4f", "access_group": { "name": "IAM Admin Group", "description": "This enterprise-managed access group allows admin access to all IAM platform services in the account. Managers are dynamically added.", "members": { "users": [ "IBMid-1234", "IBMid-2345" ], "services": [ "iam-ServiceId-123", "iam-ServiceId-234" ], "action_controls": { "add": "true", "remove": "false" } }, "assertions": { "rules": [ { "name": "Manager group rule", "expiration": 12, "realm_name": "https://idp.example.org/SAML2", "conditions": [ { "claim": "isManager", "operator": "EQUALS", "value": "true" } ], "action_controls": { "remove": "true", "update": "false" } } ], "action_controls": { "add": "false" } }, "action_controls": { "access": { "add": true } } }, "policy_template_references": [ { "id": "policyTemplateId-123", "version": "1" }, { "id": "policyTemplateId-234", "version": "1" } ], "externals": { "profile_template_ids": [ "profileTemplateId-123", "profileTemplateId-234" ] } } -
次のサンプルリクエストで示されているように 、access-group-template-createメソッド を使用します
ibmcloud iam access-group-template-create --output JSON --file /path/to/access_group_template.json
(オプション)メンバーを追加する
前の例では、IBMIDを指定することで、2つのエンタープライズユーザーと2つのサービスIDがアクセスグループテンプレートに追加されました。
テンプレートに追加するエンタープライズメンバーは、テンプレートを割り当てるエンタープライズアカウントと子アカウントの両方に存在していなければなりません。 ユーザーがすでにテンプレートを割り当てた子アカウントのメンバーでない場合は、その子アカウントに追加することができます。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、そのアカウント内の企業管理アクセスグループのメンバーを追加または削除することはできません。 企業ユーザーとしてテンプレートに追加できないアカウントのメンバーを追加できるように、メンバーの追加を許可するのも良いでしょう。 アクセスグループの管理者が、アクセスグループのメンバーが組織を去った際に追加したメンバーをいつでも削除することができます。
先の例では、 action_controls が子アカウントのアクセスグループ管理者に、自身のアカウントからメンバーを追加することを許可しています。これは、 add が true に設定されており、エンタープライズメンバーの削除が制限されているためです。 remove が false に設定されているためです。
(オプション)動的ルールを追加する
特定のID属性に基づいて、 アカウントのフェデレーションユーザーをエンタープライズ管理のアクセスグループに自動的に追加する動的なルールを作成できます。 IDプロバイダー( IdP )内で設定され、ログイン時にユーザーのフェデレーテッドIDとともに渡されるデータが満たすべき条件を設定します。 動的ルールを追加する前に、 外部アイデンティティプロバイダーからの認証を有効にする 必要があります。
先の例では、 assertions セクションで指定された rules によって、マネージャーがグループに動的に追加されます。 動的に追加されたユーザーのセッション時間は、 12 時間に設定されています。 この期間が経過すると、アクセス・グループのメンバーシップは取り消されます。 アクセス・グループのメンバーシップを更新するには、ユーザーは再度ログインする必要があります。
アクション・コントロール
デフォルトでは、アクセスグループの管理者は、企業管理のアクセスグループの動的ルールの追加、削除、更新を行うことはできません。 ダイナミックルールには、2段階のアクションコントロールがあります
- アクセスグループの管理者が特定の動的ルールを削除または更新できるかどうかを決定する、各特定のルールに対するアクション制御
- アクセスグループの管理者がアクセスグループの動的ルールを追加、削除、更新できるかどうかを決定するアクション制御
両方のレベルが設定されている場合、特定の動的ルールに対する内部レベルのアクション制御が優先されます。
先の例では、内部レベルのアクションコントロールにより、 remove が true に設定され、アクセスグループの管理者がルールを削除できるようになっています。 update が false に設定されているため、アクセスグループの管理者はルールを更新できません。 外部リールアクション制御 add が false に設定されているため、アクセスグループの管理者が新しい動的ルールを追加することができません。
(オプション)アクセスポリシーを追加する
アクセスポリシーは、子アカウント内の企業管理アクセスグループのメンバーにアクセス権を付与します。 先の例では、既存のポリシーテンプレートは、 policy_template_references を使用してアクセスグループテンプレートでアクセスを割り当てます。
アクション・コントロール
デフォルトでは、子アカウントのアクセスグループ管理者は、企業管理のアクセスグループにアクセスポリシーを追加できません。 先の例では、 add に対する access のアクション制御が true に設定されているため、子アカウントの管理者は、自分のアカウント内のグループにポリシーを追加することができます。
CLI を使用してアクセスグループテンプレートを更新する
テンプレートがコミットされる前であれば、いつでもアクセスグループテンプレートを更新できます。
アクセスグループのテンプレートを更新するには、以下の手順を実行してください
-
新しいアクセスグループテンプレートの定義をJSONファイルに追加します。 JSONファイルで使用できる属性の詳細については 、IAMアクセスグループAPI を参照してください。
-
次のサンプルリクエストに示されているように、
access-group-template-version-updateメソッドを使用してくださいibmcloud iam access-group-template-version-update example-template-name 1 --file /path/to/access_group_template.jsonこのリクエスト例は、テンプレート
example-template-nameのバージョン1を更新します。
CLI を使用してアクセスグループテンプレートをレビューし、コミットする
アクセスグループテンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 これにより、テンプレート割り当て管理者が、お客様が準備完了を確認したときにのみバージョンを割り当てていることを確実にすることができます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、確認およびコミットするテンプレートの
idをメモしてください。ibmcloud iam access-group-templates -
テンプレートバージョンを取得し、応答を確認します。
ibmcloud iam access-group-template example-template-name 1 -
テンプレートのバージョンをコミットする。
ibmcloud iam access-group-template-version-commit example-template-name 1
CLI を使用して子アカウントにアクセスグループテンプレートを割り当てる
自社の子アカウントにアクセスグループテンプレートを割り当てます。
IAMテンプレートは、親アカウントではなく子アカウントに割り当てることはできます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、子アカウントに割り当てるテンプレートの
idをメモしてください。ibmcloud iam access-group-templates -
アクセスグループテンプレートを
AccountまたはAccountGroupに割り当てます。ibmcloud iam access-group-assignment-create example-template-name 1 --target-type Account --target example-account-id
CLI を使用して新しいバージョンを作成する
コミット済みまたは割り当て済みのアクセスグループテンプレートを変更する場合は、新しいバージョンを作成してください。 新しいテンプレート名を入力すると、このバージョンとそれ以前のすべてのバージョンのテンプレート名が更新されます。
-
企業アカウント内のアクセスグループテンプレートをリストアップし、新しいバージョンを作成したいテンプレートの
idをメモしてください。ibmcloud iam access-group-templates -
変更を加えたい内容をすべて含んだJSONファイルを作成します。 JSONファイルで使用できる属性の詳細については 、IAMアクセスグループAPI を参照してください。
-
次のサンプルリクエストに示されているように、
access-group-template-version-createメソッドを使用して新しいバージョンを作成しますibmcloud iam access-group-template-version-create example-template-id 1
アクセスグループテンプレートの新しいバージョンを作成し、設定したら、それをコミットし、子アカウントに割り当てます。 アクセスグループテンプレートの旧バージョンを含む子アカウントに、新しいバージョンを割り当てることができます。 その場合、新しいテンプレートバージョンが古いバージョンに置き換わります。 詳細については 、「CLI を使用した子アカウントへのアクセスグループテンプレートの割り当て 」を参照してください。