コンパートメントの作成および管理
コンパートメントには、クラウド・インスタンス、仮想クラウド・ネットワーク、ブロック・ボリュームなどのリソースが含まれます。 テナンシは、クラウド・リソースおよび他のコンパートメントを作成できるルート・コンパートメントです。 最大6レベルの深さのコンパートメントの階層を作成できます。 コンパートメント・リソースへのアクセスを特定のユーザー・グループに制限できます。 ビジネス・ニーズが変更された場合は、ほとんどのリソースをコンパートメント間で移動できます。
テナンシ内に作成するコンパートメントは、クラウド・リソースへのアクセスを編成および制御するための主要なビルディング・ブロックです。 コンパートメントおよびリソースを作成する前に、「Oracle Private Cloud Applianceコンセプト・ガイド」の「Identity and Access Management概要」の「コンパートメント内のリソースの編成」を参照してください。
テナンシの理解
テナンシは特別なコンパートメントです。 テナンシは、クラウド・リソース(他のコンパートメントを含む)をすべて作成および管理するルート・コンパートメントです。
ユーザー、グループおよびアイデンティティ・プロバイダは、テナンシのコンパートメントではなく、常にテナンシに直接アタッチされます。 ユーザー、グループまたはアイデンティティ・プロバイダを作成する場合、別のコンパートメントを指定することはできません。 OCI CLIを使用してユーザー、グループまたはアイデンティティ・プロバイダを操作する場合、config
ファイルのテナンシのOCIDがデフォルトで使用されます。
その他のリソースは、テナンシまたは他のコンパートメントに存在できます。 多くの場合、これらのリソースで操作するには、「コンピュートWeb UI」で正しいコンパートメントを選択するか、OCI CLIでコンパートメントOCIDを指定する必要があります。
テナンシのOCIDを取得するには、次の手順を使用します。
「コンピュートWeb UI」の使用
-
ページの右上にあるユーザー・プロファイル・メニューをクリックします。
-
オプションをクリックします。
-
テナンシの詳細ページで、OCIDの下の表示またはコピー・ボタンを使用します。
OCI CLIの使用
-
compartment list
コマンドを使用します。$ oci iam compartment list
ocid1.tenancy.unique_ID
OCIDを探します。-
オプションを指定しない場合、
compartment list
コマンドは、テナンシの直接子コンパートメントであるすべてのコンパートメントをリストします。 テナンシは、リスト内のすべてのコンパートメントについてリストされた最初のプロパティ(compartment-id
)の値です。 -
--include-root
オプションを指定すると、テナンシが最初にリストされ、テナンシOCIDがid
プロパティの値になります(compartment-id
プロパティの値はnull
です)。
他のリソースと同様に、コンパートメント
list
またはget
で、compartment-id
コンパートメントはid
コンパートメントの親コンパートメントです。 -
コンパートメントのリスト
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、アイデンティティをクリックし、コンパートメントをクリックします。
リストには、テナンシの直接の子コンパートメントであるすべてのコンパートメントが表示されます。
-
リストされているコンパートメントのサブコンパートメントであるコンパートメントを表示するには、リストされているコンパートメントの名前をクリックします。 そのコンパートメントの詳細ページで、リソース・セクションまでスクロールし、子コンパートメントをクリックします。
子コンパートメント・リストでコンパートメントの名前をクリックし、このステップを繰り返す必要がある場合があります。
特定のリソースが配置されているコンパートメントを検索するには、それらのリソースのリストに移動します。 リソース・リストの上にあるコンパートメント・ドロップ・ダウン・メニューを使用して、コンパートメントを選択します。
OCI CLIの使用
--help
オプションを使用して、--access-level
オプション、および--lifecycle-state
や--sort-by
などのlist
コマンドに共通のオプションについて学習します。
-
テナンシ内のすべてのコンパートメントおよびサブコンパートメントをリストするには、
--compartment-id-in-subtree
オプションを値true
とともに指定します。$ oci iam compartment list --compartment-id-in-subtree true
次のステップで説明する
--compartment-id
オプションを指定しても、この出力は変更されません: テナンシ以外の特定のコンパートメントのコンパートメント・ツリーのみをリストすることはできません。 -
別のコンパートメントの直接子コンパートメントであるすべてのコンパートメントをリストするには、その親コンパートメントのOCIDを指定します:
$ oci iam compartment list --compartment-id ocid1.compartment.unique_ID
この出力には、指定された親コンパートメントはリストされず、この親コンパートメントの階層でより深いコンパートメントはリストされません。 この出力には、指定した親コンパートメントの直接の子コンパートメントのみがリストされます。
親コンパートメントを指定しない場合、テナンシの直接の子コンパートメントであるすべてのコンパートメントがリストされます。 テナンシの直接の子コンパートメントに加えてテナンシをリストするには、
--include-root
オプションを指定します。 -
特定のコンパートメントを1つのみリストするには、コンパートメント名を指定できます。
$ oci iam compartment list --name Acompartment
出力は、そのコンパートメントの
get
と同じです。$ oci iam compartment get --compartment-id OCID_of_Acompartment
コンパートメントの作成
テナンシまたは別のコンパートメントにコンパートメントを作成できます。 最大6レベルの深さのコンパートメントの階層を作成できます。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、アイデンティティをクリックし、コンパートメントをクリックします。
-
コンパートメントのリストの上にあるコンパートメントの作成ボタンをクリックします。
-
「コンパートメントの作成」ダイアログ・ボックスで、次の情報を入力します:
-
名前: このコンパートメントの名前。 コンパートメント名には次の特性があります:
-
テナンシ内で一意である必要があります。
-
大文字と小文字は区別されません。
-
後で変更できます。
-
100文字以下にしてください。
-
英数字、ピリオド(.)、ハイフン(-)およびアンダースコア(_)のみを含めることができます。
-
-
摘要: このコンパートメントの説明。 この説明は400文字以下で、後で変更できます。
-
コンパートメントに作成: 新しいコンパートメントを作成するコンパートメント。 新しいコンパートメントは、選択したコンパートメントのサブコンパートメントになります。
-
タグ付け: (オプション) リソース作成時のタグの追加の説明に従って、このコンパートメントの定義済タグまたはフリー・フォーム・タグを追加します。 タグは後で適用することもできます。
-
-
ダイアログ・ボックスでコンパートメントの作成ボタンをクリックします。
新しいコンパートメントの名前をクリックして、コンパートメントの詳細(タグを含む)を表示します。
OCI CLIの使用
-
新しいコンパートメントを作成するコンパートメントのOCIDを取得します。 新しいコンパートメントは、指定されたコンパートメントのサブコンパートメントになります。
$ oci iam compartment list --compartment-id-in-subtree true
-
コンパートメントcreateコマンドを実行します。
構文:
oci iam compartment create --compartment-id compartment_OCID \ --name text --description "text"
名前および説明の値の特性については、「コンピュートWeb UI」プロシージャを参照してください。 定義済タグおよびフリー・フォーム・タグを追加するには、「リソース作成時のタグの追加」を参照してください。
例:
$ oci iam compartment create -c ocid1.compartment.parent_compartment_unique_ID \ --name ProductX --description "A child compartment of compartment Products" { "data": { "compartment-id": "ocid1.compartment.parent_compartment_unique_ID", "defined-tags": {}, "description": "A child compartment of compartment Products", "freeform-tags": {}, "id": "ocid1.compartment.new_compartment_unique_ID", "inactive-status": null, "is-accessible": null, "lifecycle-state": "ACTIVE", "name": "ProductX", "time-created": "2021-10-05T22:58:23.216657+00:00" }, "etag": "b212700d-45fa-46a9-90da-bcc016c587bc" }
この出力を後で表示するには、
compartment get
コマンドを使用します。
タグのデフォルトの適用
コンパートメントには、タグのデフォルトと呼ばれるリソースを含めることができます。 タグのデフォルトは、タグのデフォルトが親コンパートメントに追加された後に作成されたすべてのリソースおよび子コンパートメントによって継承される定義済タグです。 タグのデフォルトをコンパートメントに追加するには、「タグのデフォルトの構成」を参照してください。
アクセス制御のポリシーの追加
子コンパートメントは、親コンパートメントからアクセス権限を継承します。 新しいコンパートメントへのアクセスを親コンパートメントへのアクセスとは異なるものにする場合は、新しいコンパートメントのアクセス・ポリシーを作成します。 たとえば、コンパートメントProductsのすべてのリソースを読み取るgroup DevX権限と、サブコンパートメントProductX内のすべてのリソースを管理する権限を付与します。 コンパートメントProductsのすべてのリソースを読み取るgroup DevY権限と、サブコンパートメントProductY内のすべてのリソースを管理する権限を付与します。 継承のため、グループDevXはコンパートメントProductYのすべてのリソースを読み取ることができ、グループDevYはコンパートメントProductXのすべてのリソースを読み取ることができます。
ポリシーの作成およびアタッチの詳細は、「ポリシーの管理」を参照してください。
コンパートメントへのリソースの追加
次のいずれかのメソッドを使用して、リソースをコンパートメントに追加します:
-
リソースの作成時にコンパートメントを指定します。
-
別のコンパートメントからリソースを移動します。
アタッチされたリソースが移動されたリソースとともに移動するかどうかなどの詳細は、特定のリソースのドキュメントを参照してください。
移動されたリソースに正しいタグとポリシーが適用されているかどうかを確認します。 タグおよびポリシーを手動で削除および追加する必要がある場合があります。
「コンピュートWeb UI」のコンパートメント詳細ページのリソース・ボックスと、OCI CLIのコンパートメントのlist
およびget
コマンドは、コンパートメントに属するすべてのリソースを表示しません。 リストされていないリソースの場合は、インスタンスなどのそのリソースの「コンピュートWeb UI」ページに移動し、リソース・リストの上にあるコンパートメント・ドロップ・ダウン・メニューからコンパートメントを選択します。 OCI CLIで、リソースをリストするときにコンパートメントOCIDを指定します。 「コンピュートWeb UIの使用」および「OCI CLIの使用」も参照してください。
コンパートメントの更新
コンパートメントの名前と説明を変更できます。 「既存のリソースへのタグの適用」の説明に従って、タグを追加、変更または削除できます。 親コンパートメントは変更できません。 親コンパートメントを変更するには、「別のコンパートメントへのコンパートメントの移動」を参照してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、アイデンティティをクリックし、コンパートメントをクリックします。
-
更新するコンパートメントがリストに表示されない場合は、「コンパートメントのリスト」の説明に従って、更新するコンパートメントに移動します。
-
更新するコンパートメントについて、アクション・メニューをクリックし、編集オプションをクリックします。
-
compartment_name
コンパートメントの編集ダイアログで、変更を行います。 -
Save Changesボタンをクリックします。
コンパートメント名をクリックして、タグを含むコンパートメントの詳細を表示します。
OCI CLIの使用
-
更新するコンパートメントのOCIDを取得します。
$ oci iam compartment list --compartment-id-in-subtree true
-
コンパートメント更新コマンドを実行します。
構文:
oci iam oci iam compartment update --compartment-id compartment_OCID \ options_with_values_to_update
例:
--defined-tags
または--freeform-tags
オプションを指定する場合は、保持するコンパートメントにすでに存在するタグを含め、このコンパートメントに必要なすべての定義済タグおよびフリー・フォーム・タグを完全に指定する必要があります。 これらのタグ・オプションに指定する値は、既存の値を置換します。 「リソース・タグの操作」を参照してください。--force
オプションを指定しないかぎり、確認を求めるプロンプトが表示されます。$ oci iam compartment update --compartment-id ocid1.compartment.unique_ID \ --defined-tags '{"Product":{"LMN":"Development"}}' --freeform-tags '{"MyTag":"val-u"}' WARNING: Updates to freeform-tags and defined-tags will replace any existing values. Are you sure you want to continue? [y/N]: y
このコマンドの出力は、
compartment get
コマンドの出力と同じです。
別のコンパートメントへのコンパートメントの移動
コンパートメントを同じテナンシ内の別の親コンパートメントに移動できます。 コンパートメントを移動すると、コンパートメントのすべてのサブコンパートメントが移動されます。 移動されたコンパートメントの一部のリソースが移動されます。 必要に応じて、他のリソースを個別に移動できます。 詳細は、特定のリソース・タイプのドキュメントを参照してください。
コンパートメントを新しい親コンパートメントに移動すると、新しい親のアクセス・ポリシーが有効になり、以前の親のポリシーが適用されなくなります。 コンパートメントおよびその前の親コンパートメントのリソースへのアクセス権を持つグループは、コンパートメントの移動時にアクセスを失います。 新しい親コンパートメントへのアクセス権を持つグループは、移動されたコンパートメントとそのリソースにアクセスできます。
新しい親に作成されたすべてのリソースに自動的に適用されるタグのデフォルトは、新しく移動されたコンパートメントとそのリソースに自動的に適用されません。 移動したコンパートメントにタグのデフォルトを個別に削除および追加し、移動したリソースにタグを削除して追加する必要がある場合があります。
「Oracle Private Cloud Applianceコンセプト・ガイド」の「Identity and Access Management概要」の「別の親コンパートメントへのコンパートメントの移動」も参照してください。
現在のコンパートメントおよび宛先コンパートメントの最下位の共有親コンパートメントに対するmanage all-resources
権限を持つグループに属している必要があります。
コンパートメントを移動するには、OCI CLIを使用する必要があります。
OCI CLIの使用
-
移動するコンパートメントのOCIDと宛先コンパートメントのOCIDを取得します。
$ oci iam compartment list --compartment-id-in-subtree true
-
コンパートメント移動コマンドを実行します。
構文:
oci iam compartment move --compartment-id compartment_to_move_OCID \ --target-compartment-id destination_compartment_OCID
iam work-request get
コマンドを使用してコンパートメント移動のステータスを確認するか、「コンピュートWeb UI」で作業リクエストの詳細を表示します。 一部のリソースは、コンパートメントよりも移動に時間がかかる場合があります。
コンパートメントの削除
コンパートメントを削除するには、まずコンパートメントにアタッチされているポリシーを含め、コンパートメント内のすべてのリソースを移動、削除または終了する必要があります。 開始する前に、コンパートメント内のすべてのリソースの移動および削除機能を確認してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューで、アイデンティティをクリックし、コンパートメントをクリックします。
テナンシ内のコンパートメントがリストされます。
-
削除するコンパートメントがリストに表示されていない場合は、「コンパートメントのリスト」の説明に従って、更新するコンパートメントに移動します。
-
削除するコンパートメントについて、アクション・メニューをクリックし、「コンパートメントの削除」オプションをクリックします。
「コンパートメントの削除」オプションが選択できない場合は、このコンパートメントを削除する権限がない可能性があります。
-
コンパートメントの削除確認ダイアログで、削除をクリックします。
コンパートメント・ステータスが削除中に変更されます。
コンパートメントの詳細ページのリソース・ボックスで、作業リクエストをクリックし、コンパートメントの削除の詳細を表示します。 作業リクエストが完了すると、コンパートメントがコンパートメント・リストから削除されます。 作業リクエストが失敗した場合、コンパートメントのステータスはアクティブに戻ります。
OCI CLIの使用
-
削除するコンパートメントのOCIDを取得します。
$ oci iam compartment list --compartment-id-in-subtree true
-
コンパートメントの削除コマンドを実行します。
構文:
oci iam compartment delete --compartment-id compartment_OCID
iam work-request get
コマンドを使用して、コンパートメントの削除のステータスを確認します。