- Oracle Cloud
管理者ユーザー必見!OCI IAMポリシーでwhere句を使い条件式を設定する方法
OCI IAMポリシーは、where句を使った条件式を使用することで、柔軟な権限付与が可能になります。今回は、where句による条件式の設定例およびwhere句の有無による違いについてご紹介します。
|
「OCI CLI」を利用すると、管理コンソールにアクセスしなくてもOracle Cloud上のサービスを操作したり、状態を確認することが可能です。
今回は「OCI CLI」を利用して、Compute VMとDatabase VMのサービスインスタンスを起動・停止する方法をご紹介します。
※前回の記事
OCI CLIを利用してコマンドラインからOCIを操作する方法
OCL CLIを利用してDatabase VMインスタンスを操作するには、対象となるサービス・インスタンスのOCIDが必要です。
コマンドを実行する前に、管理コンソールを利用してOCIDを確認します。
管理コンソールの「メニュー >> コンピュート」よりサービス・インスタンス一覧を表示します。
|
対象のインスタンスを選択し、インスタンスの詳細画面のインスタンス情報”一般情報”のOCIDを確認します。「コピー」を選択し、OCIDをテキストなどに記録しておくと便利です。
|
OCI CLIの設定を行ったサーバで以下のコマンドを実行します。
サービス・インスタンスが起動しているのか、どのようなシェイプで作成されたかなどインスタンスの構成情報を確認します。
oci compute instance get --instance-id <instanceのOCID>
$ oci compute instance get --instance-id ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq { "data": { "agent-config": { "is-management-disabled": false, "is-monitoring-disabled": false }, "availability-domain": "lihX:AP-TOKYO-1-AD-1", "compartment-id": "ocid1.compartment.oc1.XXXXXXXXXXXXXXXXXXXl243v2buffayrt3cijca", "dedicated-vm-host-id": null, "defined-tags": { "Oracle-Tags": { "CreatedBy": "oracleidentitycloudservice/XXXXXXX", "CreatedOn": "2020-04-11T08:22:25.230Z" } }, "display-name": "OCISVwin201601",---サービス・インスタンス名 "extended-metadata": {}, "fault-domain": "FAULT-DOMAIN-3", "freeform-tags": {}, "id": "ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq", "image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq", "ipxe-script": null, "launch-mode": "PARAVIRTUALIZED", "launch-options": { "boot-volume-type": "PARAVIRTUALIZED", "firmware": "UEFI_64", "is-consistent-volume-naming-enabled": false, "is-pv-encryption-in-transit-enabled": false, "network-type": "PARAVIRTUALIZED", "remote-data-volume-type": "PARAVIRTUALIZED" }, "lifecycle-state": "STOPPED",---インスタンス状態(停止済) "metadata": {}, "region": "ap-tokyo-1",---リージョン情報 "shape": "VM.Standard.E2.1",---シェイプ情報 "source-details": { "boot-volume-size-in-gbs": null, "image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq", "kms-key-id": null, "source-type": "image" }, "system-tags": {}, "time-created": "2020-04-11T08:22:26.179000+00:00", "time-maintenance-reboot-due": null }, "etag": "XXXXXXXXXXXXXXXXXXXXXXX5ca706d1cbdc055744f94e6d71cd7b6b315f0e" }
サービス・インスタンスが停止している場合に、起動操作を実行します。
※プロンプトはすぐに戻ってきますが、起動処理は実行中です。
(プロンプトが戻ってくる=起動済ではありません。)
処理が完了したかどうかは、状態の確認コマンドを利用して”
lifecycle-state
”を確認します。
oci compute instance action --instance-id <instanceのOCID> --action start
$ oci compute instance action --instance-id ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq --action start
{
"data": {
"agent-config": {
"is-management-disabled": false,
"is-monitoring-disabled": false
},
"availability-domain": "lihX:AP-TOKYO-1-AD-1",
"compartment-id": "ocid1.compartment.oc1.XXXXXXXXXXXXXXXXXXXl243v2buffayrt3cijca",
"dedicated-vm-host-id": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "oracleidentitycloudservice/saito@ashisuto.co.jp",
"CreatedOn": "2020-04-11T08:22:25.230Z"
}
},
"display-name": "OCISVwin201601",
"extended-metadata": {},
"fault-domain": "FAULT-DOMAIN-3",
"freeform-tags": {},
"id": "ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq",
"image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq",
"ipxe-script": null,
"launch-mode": "PARAVIRTUALIZED",
"launch-options": {
"boot-volume-type": "PARAVIRTUALIZED",
"firmware": "UEFI_64",
"is-consistent-volume-naming-enabled": false,
"is-pv-encryption-in-transit-enabled": false,
"network-type": "PARAVIRTUALIZED",
"remote-data-volume-type": "PARAVIRTUALIZED"
},
"lifecycle-state": "STARTING",---インスタンスの状態(起動中)
"metadata": {},
"region": "ap-tokyo-1",
"shape": "VM.Standard.E2.1",
"source-details": {
"boot-volume-size-in-gbs": null,
"image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq",
"kms-key-id": null,
"source-type": "image"
},
"system-tags": {},
"time-created": "2020-04-11T08:22:26.179000+00:00",
"time-maintenance-reboot-due": null
},
"etag": "81c5036f1369d4fd75b46df5e0cd7d37ec7e1d32c52562f0215cfeb2244e73cb"
}
管理コンソールの状態は処理直後は”STARTING”と表示されます。
|
処理が完了すると管理コンソールの状態は”RUNNING”に変わります。
|
サービス・インスタンスが起動している場合に、停止操作を実行します。
※プロンプトはすぐに戻ってきますが、停止処理は実行中です。
(プロンプトが戻ってくる=停止済ではありません。)
処理が完了したかどうかは、状態の確認コマンドを利用して”
lifecycle-state
”を確認します。
oci compute instance action --instance-id <instanceのOCID> --action stop
[drops2020@oci-hirkyou-db-ops ~]$ oci compute instance action --instance-id ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq --action stop
{
"data": {
"agent-config": {
"is-management-disabled": false,
"is-monitoring-disabled": false
},
"availability-domain": "lihX:AP-TOKYO-1-AD-1",
"compartment-id": "ocid1.compartment.oc1.XXXXXXXXXXXXXXXXXXXl243v2buffayrt3cijca",
"dedicated-vm-host-id": null,
"defined-tags": {
"Oracle-Tags": {
"CreatedBy": "oracleidentitycloudservice/saito@ashisuto.co.jp",
"CreatedOn": "2020-04-11T08:22:25.230Z"
}
},
"display-name": "OCISVwin201601",
"extended-metadata": {},
"fault-domain": "FAULT-DOMAIN-3",
"freeform-tags": {},
"id": "ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq",
"image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq",
"ipxe-script": null,
"launch-mode": "PARAVIRTUALIZED",
"launch-options": {
"boot-volume-type": "PARAVIRTUALIZED",
"firmware": "UEFI_64",
"is-consistent-volume-naming-enabled": false,
"is-pv-encryption-in-transit-enabled": false,
"network-type": "PARAVIRTUALIZED",
"remote-data-volume-type": "PARAVIRTUALIZED"
},
"lifecycle-state": "STOPPING",---インスタンスの状態(停止中)
"metadata": {},
"region": "ap-tokyo-1",
"shape": "VM.Standard.E2.1",
"source-details": {
"boot-volume-size-in-gbs": null,
"image-id": "ocid1.image.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa6dkpsxv6bjraseurkyj7tswtrrq",
"kms-key-id": null,
"source-type": "image"
},
"system-tags": {},
"time-created": "2020-04-11T08:22:26.179000+00:00",
"time-maintenance-reboot-due": null
},
"etag": "88a790d56dedb8ad6f601610493366b648f0d012461a66957cea2ccd49e62987"
}
管理コンソールの状態は処理直後は”STOPPING”と表示されます。
|
処理が完了すると管理コンソールの状態は”STOPPED”と表示されます。
|
Database VMインスタンスをOCL CLIコマンドを利用して操作する場合は、対象のサービス・インスタンスのノードのOCIDが必要です。
コマンドを実行する前に、管理コンソールを利用してノードのOCIDを確認します。
管理コンソールの「メニュー >> ベア・メタル、VMおよびExadata 」よりサービス・インスタンス一覧を表示します。
|
対象のインスタンスを選択し、”リソース”より「ノード」を選択します。右端にあるメニューより、「OCIDのコピー」を選択します。
|
OCI CLIの設定を行ったサーバで以下のコマンドを実行します。
サービス・インスタンスが起動しているのか、どのようなシェイプで作成されたかなどインスタンスの構成情報を確認します。
oci db node get --db-node-id <db nodeのOCID>
$ oci db node get --db-node-id ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq
{
"data": {
"additional-details": null,
"backup-vnic-id": null,
"db-system-id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljruvcXXXXXXXXXXXXXXXXXXXXXXXy7ie4ig6q6ta",
"fault-domain": "FAULT-DOMAIN-1",
"hostname": "ocisvdb19c01",
"id": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq",
"lifecycle-state": "STOPPED",---インスタンス状態(停止済)
"maintenance-type": null,
"software-storage-size-in-gb": 200,
"time-created": "2020-04-18T23:16:36.748000+00:00",
"time-maintenance-window-end": null,
"time-maintenance-window-start": null,
"vnic-id": "ocid1.vnic.oc1.ap-tokyo-1.abXXXXXXXXXXXXXXXXXXXXXXXXXXXXX47slhppjas7bds7xpvefa"
},
"etag": "eacfc35b"
}
サービス・インスタンスが停止している場合に、起動操作を実行します。
※プロンプトはすぐに戻ってきますが、起動処理は実行中です。
(プロンプトが戻ってくる=起動済ではありません。)
処理が完了したかどうかは、状態の確認コマンドを利用して”
lifecycle-state
”を確認します。
oci db node start --db-node-id <db nodeのOCID>
$ oci db node start --db-node-id ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq
{
"data": {
"additional-details": null,
"backup-vnic-id": null,
"db-system-id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljruvcXXXXXXXXXXXXXXXXXXXXXXXy7ie4ig6q6ta",
"fault-domain": "FAULT-DOMAIN-1",
"hostname": "ocisvdb19c01",
"id": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq",
"lifecycle-state": "STARTING",---インスタンスの状態(起動中)
"maintenance-type": null,
"software-storage-size-in-gb": 200,
"time-created": "2020-04-18T23:16:36.748000+00:00",
"time-maintenance-window-end": null,
"time-maintenance-window-start": null,
"vnic-id": "ocid1.vnic.oc1.ap-tokyo-1.abXXXXXXXXXXXXXXXXXXXXXXXXXXXXX47slhppjas7bds7xpvefa"
},
"etag": "4aed9c10",
"opc-work-request-id": "opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXX6c7xpvefa"
}
管理コンソールの状態は処理直後は”起動中”と表示されます。
|
処理が完了すると管理コンソールの状態は”使用可能”と表示されます。
|
サービス・インスタンスが起動している場合に、停止操作を実行します。
※プロンプトはすぐに戻ってきますが、停止処理は実行中です。
(プロンプトが戻ってくる=停止済ではありません。)
処理が完了したかどうかは、状態の確認コマンドを利用して”
lifecycle-state
”を確認します。
oci db node stop --db-node-id <db nodeのOCID>
$ oci db node stop --db-node-id ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq
{
"data": {
"additional-details": null,
"backup-vnic-id": null,
"db-system-id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljruvcXXXXXXXXXXXXXXXXXXXXXXXy7ie4ig6q6ta",
"fault-domain": "FAULT-DOMAIN-1",
"hostname": "ocisvdb19c01",
"id": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrqg7s2XXXXXXXXXXXXXXXXXXXXXXXXXfwsromtq",
"lifecycle-state": "STOPPING",---インスタンス状態(停止中)
"maintenance-type": null,
"software-storage-size-in-gb": 200,
"time-created": "2020-04-18T23:16:36.748000+00:00",
"time-maintenance-window-end": null,
"time-maintenance-window-start": null,
"vnic-id": "ocid1.vnic.oc1.ap-tokyo-1.abXXXXXXXXXXXXXXXXXXXXXXXXXXXXX47slhppjas7bds7xpvefa"
},
"etag": "e00969fd",
"opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXX6cjra3x6tsiq"
}
管理コンソールの状態は処理直後は”停止中”と表示されます。
|
処理が完了すると管理コンソールの状態は”停止済”と表示されます。
|
OCI CLIコマンドで情報を確認する時は、必要な項目を絞ると便利です。
$ oci compute instance get --instance-id <インスタンスのOCID> | grep -ie <取得項目>
[drops2020@oci-hirkyou-db-ops ~]$ oci compute instance get --instance-id ocid1.instance.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXa24ajo2wgkcirdiigqonq | grep -ie lifecycle-state
"lifecycle-state": "STOPPED",---状態を示す項目のみ表示
OCI CLIコマンドを利用すると、管理コンソールへ接続せずともサービス・インスタンスの起動や停止の操作ができます。
スクリプトを作成し、スケジューリングして実行すれば課金制御にも繋がります。
OCI CLIコマンドを監視ツールと組み合わせてりようすることで通知や操作をすることも実現できます。
今後は、「OCI CLIコマンドの整形方法」や「コマンドでサービスを作成する方法」をお伝えしたいと思います。
<参考情報>
OCI CLIコマンドリファレンス
コマンドライン(CLI)でOCIを操作する - Oracle Cloud Infrastructureアドバンスド
OCI CLIを利用してコマンドラインからOCIを操作する方法
2012年アシスト入社後、Oracle Databaseフィールドエンジニアに従事。2017年からはOracle Cloudを中心としたプリセールスおよびフィールド技術を担当。 ...show more
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
OCI IAMポリシーは、where句を使った条件式を使用することで、柔軟な権限付与が可能になります。今回は、where句による条件式の設定例およびwhere句の有無による違いについてご紹介します。
2024年5月のアップデートで、Computeインスタンスを再作成せずにブートボリュームをリストアできるブートボリューム置き換えの機能が追加されました。この機能追加により、従来のリストア方法よりも手順が少なくなり、障害発生時にも迅速な復旧が可能になりました。
OCVSは、Oracle Cloud上でVMwareをご利用いただけるサービスです。本記事では、OCVS・SDDCの概要や、オンプレミスと比較したOCVSのメリットをお伝えします!