Kebijakan organisasi memberi Anda kontrol terpusat dan terprogram atas resource organisasi. Sebagai administrator kebijakan organisasi, Anda dapat mengonfigurasi kebijakan di seluruh organisasi.
Di Google Distributed Cloud (GDC) dengan air gap versi ini, tidak ada UI atau CLI untuk
kebijakan organisasi. Anda harus menggunakan API atau CLI kubectl
untuk mengelolanya.
Manfaat
Mengonfigurasi kebijakan organisasi memberikan beberapa manfaat:
- Kontrol terpusat untuk mengonfigurasi batasan tentang cara penggunaan resource organisasi Anda.
- Menentukan dan menetapkan batas aman bagi tim pengembangan Anda agar tetap berada dalam batas kepatuhan.
- Membantu pemilik project dan tim mereka bergerak cepat tanpa melanggar kepatuhan.
Perbedaan dari Identity and Access Management
Identity and Access Management berfokus pada siapa, dan memungkinkan administrator memberikan otorisasi kepada pihak yang dapat mengambil tindakan atas resource tertentu berdasarkan izin.
Kebijakan organisasi berfokus pada apa, dan memungkinkan administrator menetapkan batasan pada resource tertentu untuk menentukan cara mengonfigurasinya.
Daftar jenis kebijakan organisasi yang tersedia
Dalam rilis GDC ini, Anda dapat menggunakan jenis kebijakan berikut.
GDCHRestrictedService
Jenis kebijakan GDCHRestrictedService
memungkinkan Anda membatasi layanan yang dapat digunakan di GDC. Jika diterapkan, kebijakan ini akan mencegah penggunaan API
yang dirujuknya. Misalnya, Anda dapat menggunakan jenis kebijakan ini untuk membatasi penggunaan layanan tertentu ke project tertentu. Anda juga dapat menggunakan kebijakan ini untuk membatasi sepenuhnya akses ke layanan GDC baru yang ingin Anda uji sebelum mengizinkan tim Anda menggunakannya.
Buat kebijakan ini di cluster yang sama dengan resource layanan. Anda dapat membuat beberapa instance kebijakan ini untuk layanan atau project yang berbeda.
Berikut adalah template untuk kebijakan ini:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: POLICY_NAME
spec:
match:
MATCH_SCHEMA
parameters:
disabledOperations:
- DISABLED_OPERATION
Ganti kode berikut:
POLICY_NAME
: nama kebijakan organisasi.MATCH_SCHEMA
: resource yang akan dicocokkan untuk batasan ini. Lihat bagian Menentukan cakupan kebijakan organisasi dalam cluster untuk mengetahui informasi selengkapnya.DISABLED_OPERATION
: grup operasi yang diblokir oleh kebijakan ini. Nilai yang diizinkan adalahCREATE
danUPDATE
. Nilai default untuk kolomdisabledOperations
adalah*
.
Kebijakan GDCHRestrictedService
hanya mendukung operasi UPDATE
dan CREATE
. Untuk membatasi operasi GET
, LIST
, dan DELETE
, sebaiknya gunakan IAM untuk menetapkan peran.
Kebijakan GDCHRestrictedService
hanya mendukung subset layanan yang tersedia berikut di GDC.
Layanan | Grup API | jenis |
---|---|---|
Marketplace | marketplace.gdc.goog |
MarketplaceService
|
Vertex AI Workbench | aiplatform.gdc.goog |
Notebook
|
Database Service - Postgres | postgresql.dbadmin.gdc.goog |
|
Database Service - Oracle | oracle.dbadmin.gdc.goog |
|
Transfer Appliance | system.gpc.gke.io |
TransferApplianceRequest |
Cadangan | backup.gdc.goog |
BackupRepositoryManager |
Dataproc Container for Spark (Layanan Marketplace) | sparkoperator.k8s.io |
SparkApplication |
Anda tidak harus menentukan semua jenis untuk layanan tertentu. Anda dapat membatasi penggunaan subset fitur layanan dengan hanya menentukan jenis yang sesuai.
Misalnya, untuk membatasi update pada layanan marketplace, buat kebijakan berikut:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: no-update-to-marketplace-service
spec:
match:
kinds:
- apiGroups:
- "marketplace.gdc.goog"
kinds:
- MarketplaceService
parameters:
disabledOperations:
- "UPDATE"
Kebijakan ini mencegah operasi UPDATE
apa pun pada grup API marketplace.gdc.goog
apa pun dengan nilai MarketplaceService
untuk jenisnya. Akibatnya, kebijakan ini mencegah siapa pun mengubah layanan Marketplace.
Untuk menonaktifkan layanan sepenuhnya, cantumkan CREATE
dan UPDATE
dalam parameter disabledOperations
, dan cantumkan semua jenis yang didokumentasikan di sini.
Memberikan peran IAM untuk mengelola kebijakan organisasi
Setiap kebijakan organisasi memiliki peran IAM terkait. Berikan peran IAM kepada pengguna dan grup yang ingin Anda kelola kebijakan organisasi tertentu tersebut. Untuk
mengizinkan pengguna atau grup membuat, memperbarui, atau menghapus kebijakan
berjenis GDCHRestrictedService
, tetapkan peran IAM gdchrestrictedservice-policy-manager
kepada pengguna atau grup tersebut.
Menentukan cakupan kebijakan organisasi dalam cluster
Saat menentukan kebijakan organisasi, putuskan apakah kebijakan tersebut harus memengaruhi semua namespace, hanya namespace tertentu, atau semua namespace kecuali daftar tertentu. Untuk
mencapai hal ini, gunakan kombinasi parameter .spec.match.excludedNamespaces
,
.spec.match.namespaceSelector
, .spec.match.namespaces
, dan
.spec.match.scope
dari definisi kebijakan.
Baca halaman
bagian kecocokan kebijakan organisasi
untuk mempelajari parameter ini lebih lanjut. Misalnya, untuk mengizinkan pembuatan
database hanya di namespace yang memiliki label owner: dba-team
, buat
kebijakan berikut:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: db-restricted-to-dbas
spec:
match:
scope: Namespaced
namespaceSelector:
matchExpressions:
# We are restricting the use of the service in namespaces that
# don't have the owner: dba-team label
- key: owner
operator: NotIn
values:
- dba-team
kinds:
- apiGroups:
- "postgresql.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
- Restore
- apiGroups:
- "oracle.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
parameters:
disabledOperations:
- "UPDATE"
- "CREATE"
Mengembalikan kebijakan yang ada
Untuk berhenti menerapkan kebijakan yang ada, hapus kebijakan tersebut menggunakan CLI kubectl
. Gunakan file kubeconfig yang memberi Anda akses ke cluster tempat kebijakan ditentukan dan ke peran IAM gdchrestrictedservice-policy-manager
.
Untuk menghapus kebijakan organisasi, jalankan:
kubectl --kubeconfig CLUSTER_KUBECONFIG delete \
GDCHRestrictedService/POLICY_NAME
Ganti kode berikut:
CLUSTER_KUBECONFIG
: file kubeconfig dari cluster tempat kebijakan organisasi berada.POLICY_NAME
: nama kebijakan organisasi yang akan dihapus.
Menguji kebijakan dalam mode audit
Anda dapat menguji kebijakan tanpa menerapkannya. Uji kebijakan untuk memastikan bahwa kebijakan tidak merusak sistem yang ada sebelum diluncurkan, atau untuk mendapatkan perkiraan seberapa luas perilaku tersebut. Untuk menambahkan pengujian, tambahkan enforcementAction
ke definisi kebijakan Anda. Ada tiga kemungkinan nilai
untuk parameter ini:
deny
: kebijakan diterapkan. Ini adalah setelan default.dryrun
: tindakan diizinkan, tetapi Anda dapat melihat bahwa ada pelanggaran kebijakan di log audit dan status kebijakan. Periksa pelanggaran dengankubectl --kubeconfig CLUSTER_KUBECONFIG get POLICY_TYPE/POLICY_NAME
.warn
: setara dengandryrun
, tetapi pengujian ini juga menampilkan peringatan sebagai respons terhadap permintaan yang memicu pelanggaran kebijakan.
Misalnya, untuk menguji kebijakan yang menonaktifkan Marketplace, buat kebijakan berikut:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: disable-marketplace-service-project-alice
Spec:
enforcementAction: warn
match:
kinds:
- apiGroups: ["marketplace.gdc.goog"]
kinds: ["MarketplaceService"]