クラスタ動的グループおよびポリシーの作成
Roving Edge OKEテナンシで、OKEリソースを管理するためのメンバー・インスタンスを認可する動的グループおよびポリシーを作成します。
デバイスコンソールおよび CLIを使用して動的グループを作成し、一致ルールを記述する手順については、Creating and Managing Dynamic Groupsを参照してください。Terraformを使用してOKE動的グループを作成する例は、Terraformを使用した動的グループの作成を参照してください。
次の一致ルールを指定してグループを定義します。
tag.OraclePCA-OKE.cluster_id.value
このタグを持つすべてのクラスタ・ノードは、動的グループのメンバーです。
次に、動的グループのポリシーの例を示します。この例では、oke_dyn_grpが動的グループの名前で、okeがリソースが作成されるコンパートメントの名前です。すべてのポリシー・ステートメントが同じコンパートメントに対するものであることに注意してください。このグループのクラスタで、他のコンパートメントのリソースへのアクセスが必要な場合は、それに応じてポリシーを変更します。ポリシーの一般情報は、ポリシーの管理を参照してください。
allow dynamic-group oke_dyn_grp to manage file-family in compartment oke
allow dynamic-group oke_dyn_grp to manage volume-family in compartment oke
allow dynamic-group oke_dyn_grp to manage load-balancers in compartment oke
allow dynamic-group oke_dyn_grp to manage instance-family in compartment oke
allow dynamic-group oke_dyn_grp to manage virtual-network-family in compartment oke
allow dynamic-group oke_dyn_grp to use tag-namespaces in compartment oke
use tag-namespacesポリシーの目的の詳細は、「コンテナ化されたアプリケーションの公開」を参照してください。
次の作業:
Terraformを使用した動的グループの作成
次の例は、Terraformを使用して動的グループを作成する方法を示しています。
variables.tf
variable "oci_config_file_profile" {
type = string
default = "DEFAULT"
}
variable "tenancy_ocid" {
description = "tenancy OCID"
type = string
nullable = false
}
variable "compartment_name" {
description = "compartment name"
type = string
nullable = false
}
variable "oke_dyn_grp" {
description = "Dynamic group that needs to be created for instance principal"
default = "oke-dyn-ip-grp"
}
variable "oke_policy_name" {
description = "Policy set name for dynamic group"
default = "oke-instance-principal-policy"
}
terraform.tfvars
# Name of the profile to use from $HOME/.oci/config
oci_config_file_profile = "DEFAULT"
# Tenancy OCID from the oci_config_file_profile profile.
tenancy_ocid = "ocid1.tenancy.UNIQUE_ID"
# Compartment name
compartment_name = "oke"
# Dynamic Group Name
oke_dyn_grp = "oke-dyn-ip-group"
# OKE Dynamic Group Policy Name
oke_policy_name = "oke-dyn-grp-policy"
provider.tf
provider "oci" {
config_file_profile = var.oci_config_file_profile
tenancy_ocid = var.tenancy_ocid
}
main.tf
terraform {
required_providers {
oci = {
source = "oracle/oci"
version = ">= 4.50.0, <= 6.36.0"
# If necessary, you can pin a specific version here
# version = "6.36.0"
}
}
required_version = ">= 1.1"
}
oke-dyn grp.tf
resource "oci_identity_dynamic_group" "oke-dynamic-grp" {
compartment_id = "${var.tenancy_ocid}"
description = "PCA OKE worker dynamic group for instance principal"
matching_rule = "tag.${oci_identity_tag_namespace.oracle-pca.name}.${oci_identity_tag.cluster-id.name}.value"
name = "${var.oke_dyn_grp}"
depends_on = [oci_identity_tag.cluster-id]
}
オークpolicy.tf
resource "oci_identity_policy" "oke-dyn-grp-policy" {
compartment_id = "${var.tenancy_ocid}"
description = "Dynamic group policies for OKE Resources"
name = "${var.oke_policy_name}"
statements = [
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to manage load-balancers in compartment ${var.compartment_name}",
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to manage volume-family in compartment ${var.compartment_name}",
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to manage file-family in compartment ${var.compartment_name}",
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to manage instance-family in compartment ${var.compartment_name}",
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to manage virtual-network-family in compartment ${var.compartment_name}",
"allow dynamic-group ${oci_identity_dynamic_group.oke-dynamic-grp.name} to use tag-namespaces in compartment ${var.compartment_name}"
]
depends_on = [oci_identity_dynamic_group.oke-dynamic-grp]
}
okeタグns.tf
OraclePCA-OKE.cluster_idタグを作成します。このタグについては、「OraclePCA-OKE.cluster_idタグの作成」も参照してください。
resource "oci_identity_tag" "cluster-id" {
description = "Default tag key definition"
name = "cluster_id"
tag_namespace_id = "${oci_identity_tag_namespace.oracle-pca.id}"
depends_on = [oci_identity_tag_namespace.oracle-pca]
}
resource "oci_identity_tag_namespace" "oracle-pca" {
compartment_id = "${var.tenancy_ocid}"
description = "Default Tag namespace for Oracle PCA OKE"
name = "OraclePCA-OKE"
}