企業管理の設定テンプレートの作成

子アカウントを多数抱える企業では、各アカウントの IAM 設定を手動で構成するのは時間がかかり、エラーが発生しやすくなります。 設定テンプレートを使用して、企業内のすべてのアカウントが組織のセキュリティ要件を遵守していることを確認してください。

アカウントまたはアカウントグループには、1つの設定テンプレートのみを割り当てることができます。 ほとんどのアカウントに適用できる設定テンプレートを作成し、特別な要件があるアカウントのみに新しいテンプレートを作成します。 例えば、本番環境のアカウントでは、多要素認証(MFA)の要件がより厳格になる場合があります。

設定テンプレートを割り当てた場合でも 、IAM アイデンティティサービスで 管理者ロールを持つ子アカウントユーザーは、自分のアカウントの設定を管理できます。 テンプレートで定義された設定とアカウント内で管理されている設定に矛盾がある場合、より厳しい設定がアカウントに適用されます。 これは、より制限の多い構成が優先され、その特定のアカウントに対して適用されることを意味します。

開始前に

  • 企業管理のIAMテンプレートが企業をより安全にする仕組みについては 、「企業管理のIAMアクセス機能の仕組み」 を参照してください。

  • 企業アカウントのメンバーになって、企業管理のIAMテンプレートを作成および割り当てます。

  • 企業管理のIAMテンプレートを作成するには、次のアクセス権が割り当てられていることを確認してください

    • すべての アカウントにおいて、「テンプレート管理者」ロールを付与されたポリシー
  • 企業管理のIAMテンプレートを子アカウントに割り当てるには、次のアクセス権が割り当てられていることを確認してください

    • すべてのIAMアカウント管理サービスにおけるテンプレート割り当て管理者の役割を持つポリシー
    • エンタープライズサービスで少なくともビューアーの役割を持つポリシー

    デフォルトでは、アカウント所有者を含め、テンプレート管理者またはテンプレート割当管理者のロールを持つユーザーはいません。

  • 貴社内の新規および既存のアカウントは、企業管理のIAMにオプトインする必要があります。 詳細については 、「企業管理のIAMへのオプトイン 」を参照してください。

  • 企業管理の設定が緩やかであるか、または削除されている場合、子アカウントレベルで定義された設定が適用されます。

設定テンプレートの作成

同じ IAM 設定を必要とする子アカウントが多数ある場合は、設定テンプレートを使用することを検討してください。 例えば、貴社には社内基準があるかもしれませんし、業界規制への準拠が求められる場合もあるでしょう。

設定テンプレートを作成するには、以下の手順に従ってください

  1. IBM Cloud で、「 管理」>「アクセス(IAM)」>「テンプレート」 に移動します。
  2. [設定] > [作成] をクリックします。
  3. 企業ユーザー向けの目的を説明する設定テンプレートの名前と説明を入力してください。
  4. 「作成」 をクリックします。

(オプション)IAMアカウント設定の追加

子アカウントでIAMアカウント設定を定義することで、ビジネスおよび規制要件を満たすように企業をカスタマイズします。

アカウント招待のドメインの制限

デフォルトでは、どのドメインのメールアドレスにもアカウント招待を送信できます。 ただし、 Restrict user invitations 設定を有効にすると、指定した許可ドメインに属する電子メールアドレスのみに招待を制限することができます。 特定のドメインに対する制限を有効にするには、以下の手順を実行してください

  1. アカウント 、 ユーザー招待の制限 の設定を有効にする。 この設定が有効な場合、サブアカウント ユーザ招待ページでは、指定された許可ドメインのメールアドレスに招待が制限されます。
  2. テンプレートとサブアカウント設定をどのように適用するかは、「 より厳しく」 または「 より柔軟に 」を選択します。
  3. 既存のドメインを変更したり、許可リストに新しいドメインを追加するには、[ 編集 ]をクリックします。 この機能により、 アカウントセキュリティが強化されるとともに、いつでも柔軟に更新し、必要に応じてドメインを追加することができます。

ドメインの制限は、E メール・パターンの設定によって実行されます。 例えば、**@ibm.com、**@*.ibm.com、**@?.ibm.comなどです。単一アスタリスク*は、ストリング内のゼロ個以上の文字のシーケンスを表します。ただし、ピリオド.またはアットマーク@が検出された場合は、シーケンスが終了します。 二重アスタリスク**は、ストリング内のゼロ個以上の文字のシーケンスを制限なしで表します。 疑問符?は、任意の単一文字を表します。

**@*.ibm.com の例を詳しく見てみよう。 E メール・アドレスのユーザー名部分は、**を指定します。 シーケンスは.によって制限されないため、my.name.is.bob@us.ibm.comのような E メール・アドレスが有効です。 サブドメインusも有効です。これは、シーケンスの末尾が.である文字ストリングであるためです。

ユーザーの可視性を制限する

デフォルトでは、 アカウント内のすべてのユーザーは、 ユーザー ページで他のすべてのユーザーを見ることができます。 ただし、 "Restrict user list visibility "設定を有効にすることで、どのユーザーを表示するかを制御し、各ユーザーが直接関連するアカウントメンバーを表示できるようにすることができます。

特定のユーザーに制限を適用するには、 アカウント セクションの ユーザーリストの表示制限 設定を有効にします。 このテンプレートが割り当てられているサブアカウント全体で、ユーザーが他のメンバーをどのように見るかをコントロールすることができます。

ユーザーによる API キーの作成操作の制限

デフォルトでは、アカウントのすべてのメンバーが IBM Cloud® API キーを作成できます。 しかし、APIキー作成設定を使用することで、正しいアクセス権を持つメンバーのみがこれらのユーザーAPIキーを作成できるようにアクセスを制限することができます。

特定アカウントユーザーに常に手動でログインしてもらうようにしたい場合、APIキーの作成機能を制限するのは理にかなっています。つまり、APIキーを使用してユーザーを自動的にログインさせるような自動化スクリプトの実行を避けたいということです。 API キーについて詳しくは、ユーザー API キーの管理を参照してください。

「API キーの作成を制限する」設定を有効にすると、 アカウントユーザー( アカウント所有者を含む)は、API キーを作成するために特定のアクセス権が必要となります。 API キーを作成できるユーザーを制限するには、以下の手順を使用します。

この設定を有効にしたときに影響があるのは、ユーザー API キーの作成のみです。 サービス ID の API キーには影響しません。

  1. アカウントセクションで 「APIキーの作成を制限する 」設定を有効にします。
  2. **「はい」**をクリックして確認します。

ユーザーがAPIキーを作成できないようにする設定が有効になったため、特定のユーザーが引き続きユーザーAPIキーを作成できるように、必要なアクセス権を付与するアクセスグループテンプレートを作成できます。 なお、 アカウント所有者もこの明示的なアクセス権を持っている必要があります。 詳細は 、「制限を有効にしたAPIキーの作成権限の割り当て 」を参照してください。

ユーザーによるサービス ID の作成操作の制限

デフォルトでは、アカウントのすべてのメンバーがサービス ID を作成できます。 しかし、サービスID作成設定を使用することで、正しいアクセス権を持つメンバーのみがサービスIDを作成できるようにアクセスを制限することができます。 サービス IDについて詳しくは、サービス ID の作成および処理を参照してください。

「サービス ID の作成」設定を有効にすると、 アカウントユーザー( アカウントを含む)は、サービス ID を作成するために特定のアクセス権が必要となります。 サービス ID を作成できるユーザーを制限するには、以下の手順を使用します。

  1. アカウントセクションでサービスIDの作成を制限する設定を有効にします。
  2. **「はい」**をクリックして確認します。

ユーザーがサービス ID を作成できないようにする設定が有効になったため、特定のユーザーが引き続きサービス ID を作成できるようにするために必要なアクセス権を付与するアクセスグループテンプレートを作成できます。 なお、 アカウント所有者もこの明示的なアクセス権を持っている必要があります。 詳細については、「 制限を有効にした状態でサービス ID を作成するアクセス権の割り当て 」を参照してください。

特定の IP アドレスの許可

デフォルトでは、すべての IP アドレスを IBM Cloud® コンソールにログインするため、およびクラシック・インフラストラクチャー API にアクセスするために使用できます。 どのIPアドレスにアクセス権を付与し、どのIPアドレスを制限するかを指定できます。 子アカウントに対してこのアクセスを指定することができます。 現在は、パブリック IP アドレスのみがサポートされています。

IBM Cloud アカウントへのアクセスを特定のIPアドレスのみに許可した場合、ユーザーは IBM Cloud シェルCLIにアクセスできません。 これは、 Cloud Shell が共有プラットフォーム上でホストされているため、IPアドレスの許可リストを満たすことができないためです。

子アカウントの管理者は、個々のユーザーに対してIPアドレス制限を設定することができます。 アカウント アドレスの制限が設定されている場合、IAMトークンを生成するには、IPアドレスが両方の指定条件に一致している必要があります。

すべてのユーザーが特定の IP アドレスのみを使用するように制限するには、以下の手順を実行します。

  1. 「 アカウント 」セクションで、「 IPアドレスのアクセスを制限する 」設定を有効にしてください。

  2. IP アドレスを入力します。 記載されているIPアドレスは、 アカウントユーザーが IBM Cloud® にログインできる唯一のIPアドレスです。

    単一 IP アドレス 17.5.7.8、IP アドレス範囲 17.5.7.8 - 17.5.9.5、IP サブネット 17.5.7.8.0/16、またはネットワーク・ゾーン networkZoneName を入力できます。 必ず IPv4 アドレスまたは IPv6 アドレスを使用し、複数の値はコンマで区切ります。 既に IP アドレス制限が存在する場合、その制限はこのリソースによってオーバーライドされます。

  3. 保存 をクリックします。

子アカウントは、企業管理リスト内のIPアドレスの一部へのアクセスを制限することができます。 例えば、本番用子アカウントの管理者が、より詳細な許可リストを指定することがあります。

(オプション)認証設定の追加

子アカウントでMFAを有効にする前に、子アカウント内のすべてのユーザーにどのような影響があるかを把握するために、以下の情報を参考にしてください

  • アカウント内のすべてのユーザーに対してMFAを有効にすると、そのアカウントのすべてのメンバーに影響が及びます。 お客様のアカウントのユーザーが複数の IBM Cloud アカウントのメンバーである場合、たとえMFAが有効になっているアカウント内のリソースを使用する予定がなくても、次のログイン時にMFAに登録する必要があります。
  • ユーザーおよびサービス ID 用の API キーは、MFA が有効にされた後も引き続き機能します。
  • お子様のアカウントのMFAはユーザーログインには適用されますが、APIコールには適用されません。 ユーザーがアカウントリソースに対してAPI呼び出しを行う権限を持っている場合、そのユーザーはMFAを完了しなくてもAPI呼び出しを行うことができます。 ユーザーは、他のアカウントに属している場合、MFA を必要としないアカウントからの API キーを使用して、アカウント内のリソースへの API 呼び出しを行うことができます。
  • アカウント内のユーザーに対する通知方法およびサポート対策を計画してください。
    • MFA を有効にする予定の日時を、ビジネスへの影響が最も少なくなるように選択してください。
    • MFAを有効にした後、 アカウントのユーザーに設定方法に関する情報を通知してください。

MFAを有効にしても、すでにログインしているユーザーには影響しません。MFAはログイン時にのみ有効になるためです。 アカウントユーザーに対し、MFAが有効になっていることを必ず通知し、次回のログイン時にユーザーにどのような影響があるかを説明してください。

設定テンプレートでMFAを有効にするには、以下の手順に従います

  1. 「認証」セクションに移動してください。
  2. アカウントで有効にしたいMFAの種類を選択してください。 MFAオプションの詳細については 、「MFAオプション」 を参照してください。

企業管理の設定が緩和または削除された場合、子アカウントで定義されたMFAレベルが適用されます。 例えば、本番用子アカウントの管理者が、企業管理の設定テンプレートで定義されているものよりも厳格なMFAレベルを指定することがあります。

(オプション)ログインセッションの設定を追加する

ユーザーに、設定した間隔でログイン認証情報の入力を義務付けることで、 アカウントセキュリティを強化します。 ユーザーが再度認証情報を入力する必要が生じるまでのアクティブセッションの継続時間を選択することができます。 ユーザーがセッションからサインアウトされて資格情報の再入力を求められるようになるまでのユーザーの非アクティブ期間を選択することもできます。

ユーザーが複数のアカウントのメンバーである場合は、各設定の最小値がユーザーのセッションに適用されます。 たとえば、あるユーザーが「 dev account 」と「 prod account 」 アカウントメンバーである場合。 prod account の非アクティブ時のタイムアウトが 15 分、 dev account の非アクティブ時のタイムアウトが 30 分の場合、 アカウント 15 分の非アクティブ時のタイムアウトが適用されます。

アクティブなセッションの継続時間を設定する

アクティブ・セッションとは、ユーザーがアカウントで継続的に操作している期間のことです。 アクティブ・セッションかどうかの判断は、セッションの「非アクティブによるサインアウト」制限の期間によっても変わります。 例えば、サインアウトの制限値を 2 時間に設定した場合、ユーザーは 2 時間に 1 回はアカウントとやり取りする必要があることになります。

アクティブセッションの設定を定義するには、以下の手順に従ってください

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。
  2. 設定テンプレートを選択してください。
  3. ログインセッションをクリックします。
  4. 「ログインセッション」セクションに移動し、「アクティブなセッション」タイルから「 編集 」アイコン( 編集アイコン )をクリックします。
  5. 時間制限を入力します。 継続できるセッションの最長期間は 720 時間です。
  6. 「保存」をクリックします。

設定テンプレートの確認

設定テンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 このようにすることで、テンプレート割り当ての管理者が、あなたが準備完了を確認したときにバージョンを割り当てていることを確実にすることができます。

  1. 概要 > レビュー をクリックします。
  2. 設定テンプレートが期待通りに設定されていることを確認してください。
  3. バージョンを編集できないことを確認するには、チェックボックスをクリックします。
  4. **「コミット」**をクリックします。

子アカウントに設定テンプレートを割り当てる

エンタープライズ内では、一度に1つの設定テンプレートのバージョンのみを割り当てることができます。 同じ設定テンプレートの異なるバージョンを割り当てることはできますが、企業内で複数の設定テンプレートを使用することはできません。 本番用アカウントやテスト用アカウントなど、要件の異なるアカウントには異なるバージョンを割り当てることをお勧めします。

IAMテンプレートは、親アカウントではなく子アカウントに割り当てることができます。

設定テンプレートを割り当てるには、以下の手順に従ってください

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。
  2. 設定テンプレートを選択してください。
  3. 「アカウントの割り当て 」をクリックします。
  4. 企業内の特定のアカウントまたはアカウントグループ全体を選択します。

アカウントグループを選択すると、そのアカウントグループに追加する将来のアカウントは、割り当てた設定を継承します。

  1. 「アカウントの割り当て 」をクリックします。

割り当てに失敗した場合は、 [再試行] をクリックします。

新しいバージョンを作成する

設定テンプレートの新しいバージョンを作成するには、以下の手順に従ってください

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。

  2. 設定テンプレートを選択してください。

  3. 新しいバージョンアイコンをクリックします。 新しいバージョンアイコン。

  4. 新しいテンプレート名と説明を入力するか、現在使用中のものをそのまま使用します。

    新しいテンプレート名を入力すると、このバージョンとそれ以前のすべてのバージョンのテンプレート名が更新されます。 テンプレートの説明は、各バージョンごとに個別に保存されます。

  5. 新しいバージョンに引き継ぎたい設定を選択します。

  6. 「作成」 をクリックします。

  7. 設定について、その他必要な調整を行ってください。

  8. 「レビュー」 をクリックし、新しいバージョンをコミットします。 詳細は 、「アクセスグループテンプレートの確認 」を参照してください。

設定テンプレートの新しいバージョンを割り当てるには、以下の手順に従ってください

  1. IBM Cloud コンソールの 「管理」>「アクセス (IAM)」>「テンプレート」 に移動します。
  2. 「設定」 をクリックします。
  3. 作業するテンプレートの テーブルが拡張する アイコン 表の展開アイコン をクリックします。
  4. 子アカウントに割り当てられているバージョンを選択します。
  5. 「割り当て」 をクリックします。
  6. 別のバージョンを割り当てたいアカウントまたはアカウントグループの割り当てで 、「更新」 をクリックします。
  7. 「 バージョンを選択 」をクリックしてください。
    1. 現在のバージョンを置き換えたいバージョンを選択します。
  8. 更新 をクリックします。
  9. 異なるバージョンを割り当てたい各アカウントまたはアカウントグループに対して、これらの手順を繰り返します。

割り当てた新しいテンプレートバージョンが古いバージョンに置き換わります。 新しいバージョンの割り当てについて、さらに詳しく知る。

割り当ての削除

テンプレートが割り当てられているアカウントまたはアカウントグループから、テンプレート割り当てを削除することができます。 テンプレートが意図したように動作していない場合は、そうした方が良いでしょう。 アカウントからテンプレート割り当てを削除すると、デフォルトではテンプレートの以前のバージョンが復元されます。 削除した割り当てがテンプレートの最初のバージョンまたは唯一のバージョンの場合、子アカウントで割り当てられた設定の優先順位は削除されます。

割り当てを削除するには、以下の手順に従ってください:

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。
  2. 「設定」 をクリックし、設定テンプレートを選択します。
  3. 「割り当て」 をクリックします。
  4. 担当を外したいアカウントまたはアカウントグループで、 行動 アイコン アクションアイコン 削除する をクリックします。

すべての設定テンプレートの割り当てを削除すると、子アカウントレベルで定義された設定が復活します。

設定テンプレートの削除

設定テンプレートを削除する前に、テンプレートのすべてのバージョンの割り当てをすべて削除する必要があります。 設定テンプレートを削除すると、すべてのバージョンが削除されます。

設定テンプレートを削除するには、以下の手順に従ってください

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。
  2. 「設定」 をクリックします。
  3. 削除したい設定テンプレートの 行動 アイコン アクションアイコン をクリックします。
  4. テンプレートを削除をクリックします。
  5. 設定テンプレートを削除してもよろしいか、確認してください。

バージョンの削除

特定のバージョンを削除するには、以下の手順に従います 設定テンプレートを削除するには、以下の手順に従ってください

  1. IBM Cloud® コンソールで 、「管理」>「アクセス(IAM)」>「テンプレート」>「設定」 をクリックします。
  2. 「設定」 をクリックします。
  3. 作業するテンプレートの テーブルが拡張する アイコン 表の展開アイコン をクリックします。
  4. 削除したいバージョンの 行動 アイコン アクションアイコン をクリックします。
  5. バージョンを削除をクリックします。
  6. このバージョンを削除してもよろしいですか?

CLI を使用して設定テンプレートを作成する

同じ IAM 設定を必要とする子アカウントが多数ある場合は、設定テンプレートを使用することを検討してください。 例えば、貴社には社内基準があるかもしれませんし、業界規制への準拠が求められる場合もあるでしょう。

CLI を使用して設定テンプレートを作成するには、以下の手順を実行してください

  1. 設定テンプレート定義を構成するJSONファイルを作成します。 JSONファイルで使用できる属性の詳細については 、IAM Identity API を参照してください。

    次の例のJSONファイルでは、エンタープライズアカウントの account_id 、テンプレートの name 、および account_settings を指定しています。 API キーの作成は、Identity Service で API キー作成者としての役割を持つユーザーに限定されています。 サービスIDの作成に制限はないため、設定テンプレートが割り当てられたアカウントでは、すべてのメンバーがサービスIDを作成できます。 IDごとのセッションの最大数は 5 に設定され、多要素認証は LEVEL3 に設定され、すべてのユーザーに U2F のMFAを使用することが求められます。

    {
       "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
       "name": "AccountSettingsTemplate",
       "account_settings": {
          "restrict_create_platform_apikey": "RESTRICTED",
          "restrict_create_service_id":  "NOT_RESTRICTED",
          "max_sessions_per_identity": 5,
          "mfa": "LEVEL3",
       }
    }
    
  2. 次のサンプルリクエストで示されているように、 account-settings-template-create コマンドを使用して設定テンプレートを作成します

    ibmcloud iam account-settings-template-create AccountSettingsTemplate --file /path/to/account_settings_template.json
    

CLI を使用して設定テンプレートを更新する

設定テンプレートは、コミットする前であればいつでも更新できます。 特定のバージョンのアカウント設定テンプレートを更新するには、以下の手順に従ってください

  1. 新しい設定テンプレート構成でJSONファイルを更新します。 JSONファイルで使用できる属性の詳細については 、IAM Identity API を参照してください。

    次の例のJSONファイルでは、エンタープライズアカウントの account_id 、テンプレートの name 、および account_settings を指定しています。 新しい構成では、MFAが NONE にリセットされ、その他の設定は削除されます。

    {
     "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
     "name": "AccountSettingsTemplateUpdated",
     "account_settings": {
         "mfa": "NONE",
     },
    }
    

    テンプレート名を更新すると、すべてのバージョンの名前が更新されます。

  2. 特定のバージョンのアカウント設定テンプレートを更新するには、次のサンプルリクエストに示されているように、 account-settings-template-version-update コマンドを使用します

    ibmcloud iam account-settings-template-version-update AccountSettingsTemplateUpdated 1 --file /path/to/account_settings_template.json
    

設定テンプレートのコミット

設定テンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 バージョンをコミットすることは、子アカウントに割り当てる前に必要なステップです。 これにより、テンプレート割り当て管理者が、お客様が準備完了を確認したときにのみバージョンを割り当てていることを確認できます。

以下のサンプルリクエストは、 AccountSettingsTemplateUpdated という名前の設定テンプレートのバージョン 1 をコミットします

ibmcloud iam account-settings-template-commit AccountSettingsTemplateUpdated 1

CLI を使用して子アカウントに設定テンプレートを割り当てる

エンタープライズ内では、一度に1つの設定テンプレートのバージョンのみを割り当てることができます。 同じ設定テンプレートの異なるバージョンを割り当てることはできますが、企業内で複数の設定テンプレートを使用することはできません。 本番用アカウントやテスト用アカウントなど、要件の異なるアカウントには異なるバージョンを割り当てることをお勧めします。

IAMテンプレートは、親アカウントではなく子アカウントに割り当てることができます。

アカウント設定テンプレートの割り当てを作成するには、以下の手順を完了します

  1. 企業アカウント内の設定テンプレートをリストアップし、子アカウントに割り当てる設定テンプレートのテンプレート名とバージョン番号をメモします

    ibmcloud iam account-settings-templates
    
  2. account-settings-assignment-create コマンドを使用して、テンプレートを Account または AccountGroup に割り当てます。

    ibmcloud iam account-settings-assignment-create AccountSettingsTemplateUpdated 1 AccountGroup 955fc2274567474f8da802d5c376504b
    

割り当てに失敗した場合は、 account-settings-assigment-update メソッドを使用して再試行してください。

CLI を使用して新しいバージョンを作成する

コミットされたバージョンに更新を加える必要がある場合は、アカウント設定テンプレートの新しいバージョンを作成します。 新しいバージョンを作成するには、以下の手順に従ってください。

  1. 新しい設定テンプレート構成でJSONファイルを更新します。 JSONファイルで使用できる属性の詳細については 、IAM Identity API を参照してください。

  2. account-settings-template-version-create メソッドを使用して新しいバージョンを作成します。 次のサンプルリクエストは、テンプレートの新しいバージョンを作成します。 AccountSettingsUpdated。

    ibmcloud iam account-settings-template-version-create AccountSettingsUpdated --file /path/to/account_settings_template.json
    

CLI を使用して課題を更新する

失敗した割り当てを再試行したり、新しいバージョンに移行したりするために割り当てを更新します。

割り当てた新しいテンプレートバージョンが古いバージョンに置き換わります。 新しいバージョンの割り当てについて、さらに詳しく知る。

  1. account-settings-assignments の方法でアカウント内の割り当てをリストアップします。 更新したい課題の ASSIGNMENT_ID をメモしてください。

  2. アカウント設定の割り当てを更新してください。 課題を再提出する場合は、同じバージョン番号を使用してください。 次のサンプルリクエストは、課題 AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b をバージョン2に移行します。

    ibmcloud iam account-settings-assignment-update AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b 2
    

CLI を使用して割り当てを削除する

テンプレートが割り当てられているアカウントまたはアカウントグループから、テンプレート割り当てを削除することができます。 テンプレートが意図したように動作していない場合は、そうした方が良いでしょう。 アカウントからテンプレート割り当てを削除すると、デフォルトではテンプレートの以前のバージョンが復元されます。 削除した割り当てがテンプレートの最初のバージョンまたは唯一のバージョンの場合、子アカウントの企業管理設定の優先順位は削除されます。

割り当てを削除するには、以下の手順に従ってください:

  1. account-settings-assignments の方法でアカウント内の割り当てをリストアップします。 削除したい課題の ASSIGNMENT_ID をメモしてください。

  2. account-settings-assigment-delete メソッドを使用して割り当てを解除します。 次のサンプルリクエストは、 AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b の割り当てを削除します。

    ibmcloud iam account-settings-assignment-delete AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b
    

CLI を使用してバージョンを削除する

設定テンプレートのバージョンを削除する前に、そのバージョンのテンプレートへのすべての割り当てを削除する必要があります。 特定のバージョンを削除するには、以下の手順に従ってください

  1. 企業アカウント内の設定テンプレートをリストアップし、削除するバージョンのテンプレート名とバージョン番号をメモします

    ibmcloud iam account-settings-templates
    
  2. バージョンを削除する:

    ibmcloud iam account-settings-template-delete AccountSettingsTemplateUpdated 2
    
  3. すべてのバージョンを削除するには、これらの手順を繰り返します。 各バージョンの割り当てを最初に削除することを確認してください。

API を使用して設定テンプレートを作成する

同じ IAM 設定を必要とする子アカウントが多数ある場合は、設定テンプレートを使用することを検討してください。 例えば、貴社には社内基準があるかもしれませんし、業界規制への準拠が求められる場合もあるでしょう。

API を使用して設定テンプレートを作成するには、以下の手順を実行してください

  1. 設定テンプレート定義を設定します。 JSONファイルで使用できる属性の詳細については 、IAM Identity API を参照してください。

    次の例のJSONファイルでは、エンタープライズアカウントの account_id 、テンプレートの name 、および account_settings を指定しています。 API キーの作成は、Identity Service で API キー作成者としての役割を持つユーザーに限定されています。 サービスIDの作成に制限はないため、設定テンプレートが割り当てられたアカウントでは、すべてのメンバーがサービスIDを作成できます。 IDごとのセッションの最大数は 5 に設定され、多要素認証は LEVEL3 に設定され、すべてのユーザーに U2F のMFAを使用することが求められます。

    curl -X POST 'https://iam.cloud.ibm.com/v1/account_settings_templates' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
       "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
       "name": "my template",
       "account_settings": {
          "restrict_create_platform_apikey": "RESTRICTED",
          "restrict_create_service_id":  "NOT_RESTRICTED",
          "max_sessions_per_identity": 5,
          "mfa": "LEVEL3",
       },
    }'
    
    AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder()
       .mfa("LEVEL1")
       .systemAccessTokenExpirationInSeconds("3000")
       .build();
    CreateAccountSettingsTemplateOptions createOptions = new CreateAccountSettingsTemplateOptions.Builder()
       .accountId(enterpriseAccountId)
       .name(accountSettingsTemplateName)
       .description("IAM enterprise account settings template example")
       .accountSettings(accountSettings)
       .build();
    Response<AccountSettingsTemplateResponse> createResponse = service.createAccountSettingsTemplate(createOptions).execute();
    AccountSettingsTemplateResponse createResult = createResponse.getResult();
    // Save the id for use by other test methods.
    accountSettingsTemplateId = createResult.getId();
    accountSettingsTemplateVersion = createResult.getVersion().longValue();
    System.out.println(createResult);
    
    const settings = {
    mfa: "LEVEL1",
    system_access_token_expiration_in_seconds: "3000",
    }
    const templateParams = {
    name: "Example-Account-Settings-Template",
    description: "IAM enterprise account settings template example",
    accountId: enterpriseAccountId,
    accountSettings: settings,
    }
    try {
    const res = await iamIdentityService.createAccountSettingsTemplate(templateParams);
    accountSettingsTemplateEtag = res.headers.etag;
    const { result } = res;
    accountSettingsTemplateId = result.id;
    accountSettingsTemplateVersion = result.version;
    console.log(JSON.stringify(result, null, 2));
    } catch (err) {
    console.warn(err);
    }
    
    account_settings = {}
    account_settings['mfa'] = 'LEVEL1'
    account_settings['system_access_token_expiration_in_seconds'] = 3000
    create_response = iam_identity_service.create_account_settings_template(
    name='Example-Account-Settings-Template',
    description='IAM enterprise account settings template example',
    account_id=enterprise_account_id,
    account_settings=account_settings,
    )
    account_settings_template = create_response.get_result()
    print('\ncreate_account_settings_template() response: ', json.dumps(account_settings_template, indent=2))
    global account_settings_template_id
    account_settings_template_id = account_settings_template['id']
    global account_settings_template_version
    account_settings_template_version = account_settings_template['version']
    
    settings := &iamidentityv1.AccountSettingsComponent{
    Mfa:                                  core.StringPtr("LEVEL1"),
    SystemAccessTokenExpirationInSeconds: core.StringPtr("3000"),
    }
    createOptions := &iamidentityv1.CreateAccountSettingsTemplateOptions{
    Name:            &accountSettingsTemplateName,
    Description:     core.StringPtr("GoSDK test Account Settings Template"),
    AccountID:       &enterpriseAccountID,
    AccountSettings: settings,
    }
    createResponse, response, err := iamIdentityService.CreateAccountSettingsTemplate(createOptions)
    b, _ := json.MarshalIndent(createResponse, "", "  ")
    fmt.Println(string(b))
    // Grab the ID and Etag value from the response for use in the update operation.
    accountSettingsTemplateId = *createResponse.ID
    accountSettingsTemplateVersion = *createResponse.Version
    accountSettingsTemplateEtag = response.GetHeaders().Get("Etag")
    

API を使用して設定テンプレートを更新する

設定テンプレートは、コミットする前であればいつでも更新できます。 特定のバージョンのアカウント設定テンプレートを更新するには、以下の手順に従ってください

  1. 企業アカウントの設定テンプレートをリストアップし、更新したいテンプレートバージョンの応答に含まれる AccountSettingsTemplate IDとETagをメモします。

    curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
    
    ListAccountSettingsTemplatesOptions listOptions = new ListAccountSettingsTemplatesOptions.Builder()
       .accountId(enterpriseAccountId)
       .build();
    Response<AccountSettingsTemplateList> response = service.listAccountSettingsTemplates(listOptions).execute();
    AccountSettingsTemplateList result = response.getResult();
    System.out.println(result);
    
    const params = {
    accountId: enterpriseAccountId,
    }
    try {
    const res = await iamIdentityService.listAccountSettingsTemplates(params);
    console.log(JSON.stringify(res.result, null, 2));
    } catch (err) {
    console.warn(err);
    }
    
    list_response = iam_identity_service.list_account_settings_templates(account_id=enterprise_account_id)
    account_settings_template_list = list_response.get_result()
    print('\nlist_account_settings_templates response: ', json.dumps(account_settings_template_list, indent=2))
    
    listOptions := &iamidentityv1.ListAccountSettingsTemplatesOptions{
    AccountID: &enterpriseAccountID,
    }
    listResponse, response, err := iamIdentityService.ListAccountSettingsTemplates(listOptions)
    b, _ := json.MarshalIndent(listResponse, "", "  ")
    fmt.Println(string(b))
    
  2. 設定テンプレート定義を更新する。

    テンプレート名を更新すると、すべてのバージョンの名前が更新されます。

    curl -X POST 'https://iam.cloud.ibm.com/v1/account_settings_templates/{template_id}/version' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
       "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
       "name": "my template name",
       "account_settings": {
          "mfa": "NONE",
       },
    }'
    
    AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder()
       .mfa("LEVEL1")
       .systemAccessTokenExpirationInSeconds("3000")
       .build();
    UpdateAccountSettingsTemplateVersionOptions updateOptions = new UpdateAccountSettingsTemplateVersionOptions.Builder()
       .accountId(enterpriseAccountId)
       .templateId(accountSettingsTemplateId)
       .version(Long.toString(accountSettingsTemplateVersion))
       .ifMatch(accountSettingsTemplateEtag)
       .name(accountSettingsTemplateName)
       .description("IAM enterprise account settings template example - updated")
       .accountSettings(accountSettings)
       .build();
    Response<AccountSettingsTemplateResponse> updateResponse = service.updateAccountSettingsTemplateVersion(updateOptions).execute();
    AccountSettingsTemplateResponse updateResult = updateResponse.getResult();
    accountSettingsTemplateEtag = updateResponse.getHeaders().values("Etag").get(0);
    System.out.println(updateResult);
    
    const settings = {
    mfa: "LEVEL1",
    system_access_token_expiration_in_seconds: "3000",
    }
    const params = {
    accountId: enterpriseAccountId,
    templateId: accountSettingsTemplateId,
    version: accountSettingsTemplateVersion,
    ifMatch: accountSettingsTemplateEtag,
    name: "Example-Account-Settings-Template",
    description: "IAM enterprise account settings template example - updated",
    accountSettings: settings,
    }
    try {
    const res = await iamIdentityService.updateAccountSettingsTemplateVersion(params);
    accountSettingsTemplateEtag = res.headers.etag;
    console.log(JSON.stringify(res.result, null, 2));
    } catch (err) {
    console.warn(err);
    }
    
    account_settings = {}
    account_settings['mfa'] = 'LEVEL1'
    account_settings['system_access_token_expiration_in_seconds'] = 3000
    update_response = iam_identity_service.update_account_settings_template_version(
    account_id=enterprise_account_id,
    template_id=account_settings_template_id,
    version=str(account_settings_template_version),
    if_match=account_settings_template_etag,
    name='Example-Account-Settings-Template',
    description='IAM enterprise account settings template example - updated',
    account_settings=account_settings,
    )
    account_settings_template = update_response.get_result()
    print('\nupdate_account_settings_template() response: ', json.dumps(account_settings_template, indent=2))
    account_settings_template_etag = update_response.get_headers()['Etag']
    
    settings := &iamidentityv1.AccountSettingsComponent{
    Mfa:                                  core.StringPtr("LEVEL1"),
    SystemAccessTokenExpirationInSeconds: core.StringPtr("3000"),
    }
    updateOptions := &iamidentityv1.UpdateAccountSettingsTemplateVersionOptions{
    AccountID:       &enterpriseAccountID,
    TemplateID:      &accountSettingsTemplateId,
    Version:         core.StringPtr(strconv.FormatInt(accountSettingsTemplateVersion, 10)),
    IfMatch:         &accountSettingsTemplateEtag,
    Name:            &accountSettingsTemplateName,
    Description:     core.StringPtr("GoSDK test Account Settings Template - updated"),
    AccountSettings: settings,
    }
    updateResponse, response, err := iamIdentityService.UpdateAccountSettingsTemplateVersion(updateOptions)
    b, _ := json.MarshalIndent(updateResponse, "", "  ")
    fmt.Println(string(b))
    accountSettingsTemplateEtag = response.GetHeaders().Get("Etag")
    

APIを使用して設定テンプレートをコミットする

設定テンプレートを確認し、そのバージョンにこれ以上の変更が加えられないようにコミットします。 バージョンをコミットすることは、子アカウントに割り当てる前に必要なステップです。 これにより、テンプレート割り当て管理者が、お客様が準備完了を確認したときにのみバージョンを割り当てていることを確認できます。

  1. レビューとコミットを行いたい信頼済みプロファイルテンプレートのバージョンを取得します。

    curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_templates/AccountSettingsTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9/versions/1' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
    
    GetAccountSettingsTemplateVersionOptions getOptions = new GetAccountSettingsTemplateVersionOptions.Builder()
       .templateId(accountSettingsTemplateId)
       .version(Long.toString(accountSettingsTemplateVersion))
       .build();
    Response<AccountSettingsTemplateResponse> response = service.getAccountSettingsTemplateVersion(getOptions).execute();
    AccountSettingsTemplateResponse getResult = response.getResult();
    // Grab the Etag value from the response for use in the update operation.
    accountSettingsTemplateEtag = response.getHeaders().values("Etag").get(0);
    System.out.println(getResult);
    
    get_response = iam_identity_service.get_account_settings_template_version(
    template_id=account_settings_template_id, version=str(account_settings_template_version)
    )
    account_settings_template = get_response.get_result()
    print('\nget_account_settings_template response: ', json.dumps(account_settings_template, indent=2))
    global account_settings_template_etag
    account_settings_template_etag = get_response.get_headers()['Etag']
    
    get_response = iam_identity_service.get_account_settings_template_version(
    template_id=account_settings_template_id, version=str(account_settings_template_version)
    )
    account_settings_template = get_response.get_result()
    print('\nget_account_settings_template response: ', json.dumps(account_settings_template, indent=2))
    global account_settings_template_etag
    account_settings_template_etag = get_response.get_headers()['Etag']
    
    getOptions := &iamidentityv1.GetAccountSettingsTemplateVersionOptions{
    TemplateID: &accountSettingsTemplateId,
    Version:    core.StringPtr(strconv.FormatInt(accountSettingsTemplateVersion, 10)),
    }
    getResponse, response, err := iamIdentityService.GetAccountSettingsTemplateVersion(getOptions)
    b, _ := json.MarshalIndent(getResponse, "", "  ")
    fmt.Println(string(b))
    // Grab the Etag value from the response for use in the update operation.
    accountSettingsTemplateEtag = response.GetHeaders().Get("Etag")
    
  2. 回答を確認し、コミットする準備ができていることを確認します。

  3. 信頼済みプロファイルテンプレートのバージョンをコミットします。

    curl -X POST 'https://iam.cloud.ibm.com/v1/account_settings_templates/{template_id}/{version}/commit' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
    
    CommitAccountSettingsTemplateOptions commitOptions = new CommitAccountSettingsTemplateOptions.Builder()
       .templateId(accountSettingsTemplateId)
       .version(Long.toString(accountSettingsTemplateVersion))
       .build();
    Response<Void> commitResponse = service.commitAccountSettingsTemplate(commitOptions).execute();
    
    const commitParams = {
    templateId: accountSettingsTemplateId,
    version: accountSettingsTemplateVersion,
    }
    try {
    const res = await iamIdentityService.commitAccountSettingsTemplate(commitParams);
    } catch (err) {
    console.warn(err);
    }
    
    commit_response = iam_identity_service.commit_account_settings_template(
    template_id=account_settings_template_id, version=str(account_settings_template_version)
    )
    
    commitOptions := &iamidentityv1.CommitAccountSettingsTemplateOptions{
    TemplateID: &accountSettingsTemplateId,
    Version:    core.StringPtr(strconv.FormatInt(accountSettingsTemplateVersion, 10)),
    }
    response, err := iamIdentityService.CommitAccountSettingsTemplate(commitOptions)
    

APIを使用して子アカウントに設定テンプレートを割り当てる

エンタープライズ内では、一度に1つの設定テンプレートのバージョンのみを割り当てることができます。 同じ設定テンプレートの異なるバージョンを割り当てることはできますが、企業内で複数の設定テンプレートを使用することはできません。 本番用アカウントやテスト用アカウントなど、要件の異なるアカウントには異なるバージョンを割り当てることをお勧めします。

IAMテンプレートは、親アカウントではなく子アカウントに割り当てることができます。

アカウント設定テンプレートの割り当てを作成するには、以下の手順を完了します

  1. 企業アカウントの設定テンプレートをリストアップし、子アカウントに割り当てたいテンプレートバージョンの応答に含まれる AccountSettingsTemplate IDとETagをメモします。

    curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
    
    ListAccountSettingsTemplatesOptions listOptions = new ListAccountSettingsTemplatesOptions.Builder()
       .accountId(enterpriseAccountId)
       .build();
    Response<AccountSettingsTemplateList> response = service.listAccountSettingsTemplates(listOptions).execute();
    AccountSettingsTemplateList result = response.getResult();
    System.out.println(result);
    
    const params = {
    accountId: enterpriseAccountId,
    }
    try {
    const res = await iamIdentityService.listAccountSettingsTemplates(params);
    console.log(JSON.stringify(res.result, null, 2));
    } catch (err) {
    console.warn(err);
    }
    
    list_response = iam_identity_service.list_account_settings_templates(account_id=enterprise_account_id)
    account_settings_template_list = list_response.get_result()
    print('\nlist_account_settings_templates response: ', json.dumps(account_settings_template_list, indent=2))
    
    listOptions := &iamidentityv1.ListAccountSettingsTemplatesOptions{
    AccountID: &enterpriseAccountID,
    }
    listResponse, response, err := iamIdentityService.ListAccountSettingsTemplates(listOptions)
    b, _ := json.MarshalIndent(listResponse, "", "  ")
    fmt.Println(string(b))
    
  2. Account または AccountGroup に設定テンプレートを割り当てます。

    curl -X POST 'https://iam.cloud.ibm.com/v1/account_settings_assignments' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
       "template_id": "AccountSettingsTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d",
       "template_version": 1,
       "target_type": "Account",
       "target": "5bbe28be34524e88a34d37d1f2294a8a"
    }'
    
    CreateAccountSettingsAssignmentOptions assignOptions = new CreateAccountSettingsAssignmentOptions.Builder()
       .templateId(accountSettingsTemplateId)
       .templateVersion(accountSettingsTemplateVersion)
       .targetType("Account")
       .target(enterpriseSubAccountId)
       .build();
    Response<TemplateAssignmentResponse> assignResponse = service.createAccountSettingsAssignment(assignOptions).execute();
    TemplateAssignmentResponse assignmentResult = assignResponse.getResult();
    // Save the id for use by other test methods.
    accountSettingsTemplateAssignmentId = assignmentResult.getId();
    // Grab the Etag value from the response for use in the update operation.
    accountSettingsTemplateAssignmentEtag = assignResponse.getHeaders().values("Etag").get(0);
    System.out.println(assignmentResult);
    
    const assignParams = {
    templateId: accountSettingsTemplateId,
    templateVersion: accountSettingsTemplateVersion,
    targetType: "Account",
    target: enterpriseSubAccountId,
    }
    try {
    const assRes = await iamIdentityService.createAccountSettingsAssignment(assignParams);
    const { result } = assRes;
    accountSettingsTemplateAssignmentId = result.id;
    accountSettingsTemplateAssignmentEtag= assRes.headers.etag;
    console.log(JSON.stringify(result, null, 2));
    } catch (err) {
    console.warn(err);
    }
    
    assign_response = iam_identity_service.create_account_settings_assignment(
    template_id=account_settings_template_id,
    template_version=account_settings_template_version,
    target_type='Account',
    target=enterprise_subaccount_id,
    )
    assignment = assign_response.get_result()
    print('\ncreate_account_settings_assignment() response: ', json.dumps(assignment, indent=2))
    global account_settings_template_assignment_id
    account_settings_template_assignment_id = assignment['id']
    global account_settings_template_assignment_etag
    account_settings_template_assignment_etag = assign_response.get_headers()['Etag']
    
    assignOptions := &iamidentityv1.CreateAccountSettingsAssignmentOptions{
    TemplateID:      &accountSettingsTemplateId,
    TemplateVersion: &accountSettingsTemplateVersion,
    TargetType:      core.StringPtr("Account"),
    Target:          &enterpriseSubAccountID,
    }
    assignResponse, response, err := iamIdentityService.CreateAccountSettingsAssignment(assignOptions)
    b, _ := json.MarshalIndent(assignResponse, "", "  ")
    fmt.Println(string(b))
    accountSettingsTemplateAssignmentEtag = response.GetHeaders().Get("Etag")
    accountSettingsTemplateAssignmentId = *assignResponse.ID
    

割り当てに失敗した場合は、 account-settings-assigment-update メソッドを使用して再試行してください。

API を使用して新しいバージョンを作成する

コミットまたは割り当て済みの設定テンプレートを変更したい場合は、新しいバージョンを作成してください。

settings := &iamidentityv1.AccountSettingsComponent{
Mfa:                                  core.StringPtr("LEVEL1"),
SystemAccessTokenExpirationInSeconds: core.StringPtr("2600"),
RestrictCreatePlatformApikey:         core.StringPtr("RESTRICTED"),
RestrictCreateServiceID:              core.StringPtr("RESTRICTED"),
}
createOptions := &iamidentityv1.CreateAccountSettingsTemplateVersionOptions{
Name:            &accountSettingsTemplateName,
Description:     core.StringPtr("GoSDK test Account Settings Template - new version"),
AccountID:       &enterpriseAccountID,
TemplateID:      &accountSettingsTemplateId,
AccountSettings: settings,
}
createResponse, response, err := iamIdentityService.CreateAccountSettingsTemplateVersion(createOptions)
b, _ := json.MarshalIndent(createResponse, "", "  ")
fmt.Println(string(b))
accountSettingsTemplateVersion = *createResponse.Version

新しいバージョンの AccountSettingsTemplate IDとバージョンを保存し、今後の通話で使用します。

API を使用して課題を更新する

新しいバージョンへの移行や、失敗した割り当ての再試行などの割り当てを更新します。

割り当てた新しいテンプレートバージョンが古いバージョンに置き換わります。 新しいバージョンの割り当てについて、さらに詳しく知る。

  1. 企業アカウントの設定テンプレート割り当てをリストアップし、更新する割り当ての割り当てID、ETag、バージョンをメモします
curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListAccountSettingsTemplatesOptions listOptions = new ListAccountSettingsTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<AccountSettingsTemplateList> listResponse = service.listAccountSettingsTemplates(listOptions).execute();
AccountSettingsTemplateList listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: accountSettingsTemplateId,
}
try {
const res = await iamIdentityService.listAccountSettingsAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_account_settings_assignments(
account_id=enterprise_account_id, template_id=account_settings_template_id
)
assignment_list = list_response.get_result()
print('\ncreate_account_settings_assignment() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListAccountSettingsAssignmentsOptions{
AccountID:  &enterpriseAccountID,
TemplateID: &accountSettingsTemplateId,
}
listResponse, response, err := iamIdentityService.ListAccountSettingsAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. アカウント設定の割り当てを更新してください。 課題を再提出する場合は、同じバージョン番号を使用してください。
curl -X PATCH 'https://iam.cloud.ibm.com/v1/account_settings_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
   "template_version": 2
}'
UpdateAccountSettingsAssignmentOptions updateOptions = new UpdateAccountSettingsAssignmentOptions.Builder()
   .assignmentId(accountSettingsTemplateAssignmentId)
   .templateVersion(accountSettingsTemplateVersion)
   .ifMatch(accountSettingsTemplateAssignmentEtag)
   .build();
Response<TemplateAssignmentResponse> updateResponse = service.updateAccountSettingsAssignment(updateOptions).execute();
TemplateAssignmentResponse updateResult = updateResponse.getResult();
// Grab the Etag value from the response for use in the update operation.
accountSettingsTemplateAssignmentEtag = updateResponse.getHeaders().values("Etag").get(0);
System.out.println(updateResult);
const assignParams = {
assignmentId: accountSettingsTemplateAssignmentId,
templateVersion: accountSettingsTemplateVersion,
ifMatch: accountSettingsTemplateAssignmentEtag,
}
try {
const assRes = await iamIdentityService.updateAccountSettingsAssignment(assignParams);
console.log(JSON.stringify(assRes.result, null, 2));
} catch (err) {
console.warn(err);
}
assign_response = iam_identity_service.update_account_settings_assignment(
assignment_id=account_settings_template_assignment_id,
template_version=account_settings_template_version,
if_match=account_settings_template_assignment_etag,
)
assignment = assign_response.get_result()
print('\nupdate_account_settings_template_assignment response: ', json.dumps(assignment, indent=2))
account_settings_template_assignment_etag = assign_response.get_headers()['Etag']
updateOptions := &iamidentityv1.UpdateAccountSettingsAssignmentOptions{
AssignmentID:    &accountSettingsTemplateAssignmentId,
TemplateVersion: &accountSettingsTemplateVersion,
IfMatch:         &accountSettingsTemplateAssignmentEtag,
}
updateResponse, response, err := iamIdentityService.UpdateAccountSettingsAssignment(updateOptions)
b, _ := json.MarshalIndent(updateResponse, "", "  ")
fmt.Println(string(b))

API を使用して割り当てを削除する

テンプレートが割り当てられているアカウントまたはアカウントグループから、テンプレート割り当てを削除することができます。 テンプレートが意図したように動作していない場合は、そうした方が良いでしょう。 アカウントからテンプレート割り当てを削除すると、デフォルトではテンプレートの以前のバージョンが復元されます。 削除した割り当てがテンプレートの最初のバージョンまたは唯一のバージョンの場合、子アカウントの企業管理設定の優先順位は削除されます。

割り当てを削除するには、以下の手順に従ってください:

  1. 削除したいタスクのアカウントとメモに記載されているタスクIDをリストアップします。
curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListAccountSettingsTemplatesOptions listOptions = new ListAccountSettingsTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<AccountSettingsTemplateList> listResponse = service.listAccountSettingsTemplates(listOptions).execute();
AccountSettingsTemplateList listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: accountSettingsTemplateId,
}
try {
const res = await iamIdentityService.listAccountSettingsAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_account_settings_assignments(
account_id=enterprise_account_id, template_id=account_settings_template_id
)
assignment_list = list_response.get_result()
print('\ncreate_account_settings_assignment() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListAccountSettingsAssignmentsOptions{
AccountID:  &enterpriseAccountID,
TemplateID: &accountSettingsTemplateId,
}
listResponse, response, err := iamIdentityService.ListAccountSettingsAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. 割り当てを削除します。

割り当てを削除すると、以前の割り当てがアクティブになる可能性があります。 詳細は 、「テンプレートバージョンでの作業 」を参照してください。

curl -X DELETE 'https://iam.cloud.ibm.com/v1/account_settings_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' }'
DeleteAccountSettingsAssignmentOptions deleteOptions = new DeleteAccountSettingsAssignmentOptions.Builder()
   .assignmentId(accountSettingsTemplateAssignmentId)
   .build();
Response<ExceptionResponse> deleteResponse = service.deleteAccountSettingsAssignment(deleteOptions).execute();
const params = {
assignmentId: accountSettingsTemplateAssignmentId,
}
try {
const res = await iamIdentityService.deleteAccountSettingsAssignment(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_account_settings_assignment(
assignment_id=account_settings_template_assignment_id
)
deleteOptions := &iamidentityv1.DeleteAccountSettingsAssignmentOptions{
AssignmentID: &accountSettingsTemplateAssignmentId,
}
excResponse, response, err := iamIdentityService.DeleteAccountSettingsAssignment(deleteOptions)

API を使用してバージョンを削除する

設定テンプレートのバージョンを削除する前に、そのバージョンのテンプレートへのすべての割り当てを削除する必要があります。 特定のバージョンを削除するには、以下の手順に従ってください

  1. 企業アカウント内の設定テンプレートをリストアップし、削除するバージョンの設定テンプレートIDとバージョン番号をメモします
   curl -X GET 'https://iam.cloud.ibm.com/v1/account_settings_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListAccountSettingsTemplatesOptions listOptions = new ListAccountSettingsTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<AccountSettingsTemplateList> response = service.listAccountSettingsTemplates(listOptions).execute();
AccountSettingsTemplateList result = response.getResult();
System.out.println(result);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listAccountSettingsTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_account_settings_templates(account_id=enterprise_account_id)
account_settings_template_list = list_response.get_result()
print('\nlist_account_settings_templates response: ', json.dumps(account_settings_template_list, indent=2))
listOptions := &iamidentityv1.ListAccountSettingsTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListAccountSettingsTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. バージョンを削除する:

APIを使用してすべてのバージョンを削除する

各バージョンの割り当てを最初に削除することを確認してください。

curl -X DELETE 'https://iam.cloud.ibm.com/v1/account_settings_templates/AccountSettingsTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
DeleteAllVersionsOfAccountSettingsTemplateOptions deleteTeplateOptions = new DeleteAllVersionsOfAccountSettingsTemplateOptions.Builder()
    .templateId(accountSettingsTemplateId)
    .build();
Response<Void> deleteResponse = service.deleteAllVersionsOfAccountSettingsTemplate(deleteTeplateOptions).execute();
const params = {
  templateId: accountSettingsTemplateId,
}
try {
  const res = await iamIdentityService.deleteAllVersionsOfAccountSettingsTemplate(params);
} catch (err) {
  console.warn(err);
}
delete_response = iam_identity_service.delete_all_versions_of_account_settings_template(
  template_id=account_settings_template_id
)
deleteOptions := &iamidentityv1.DeleteAllVersionsOfAccountSettingsTemplateOptions{
  TemplateID: &accountSettingsTemplateId,
}
response, err := iamIdentityService.DeleteAllVersionsOfAccountSettingsTemplate(deleteOptions)

設定テンプレートの制限事項

企業では、1つの設定テンプレートのみを割り当てることができます。 テンプレートの複数のバージョンを割り当てることはできますが、異なるテンプレートを割り当てることはできません。