Anda dapat membuat, memindahkan, mencantumkan, dan memfilter project dalam folder menggunakan konsolGoogle Cloud , Google Cloud CLI, atau Cloud Resource Manager API. Dengan mengatur project ke dalam folder, Anda dapat menerapkan kebijakan turunan, mendelegasikan administrasi, dan menyelaraskan hierarki resource Google Cloud dengan tim dan lingkungan Anda.
Ringkasan
Dalam hierarki resource Google Cloud , project berfungsi sebagai unit organisasi dan penagihan inti untuk resource Anda. Project berada di antara folder (atau resource organisasi) dan resource yang mendasarinya, seperti instance virtual machine dan bucket penyimpanan.
Meskipun folder adalah mekanisme pengelompokan opsional, mengatur project Anda dalam folder memberikan beberapa keuntungan utama:
Tata kelola yang skalabel: Menerapkan kebijakan Identity and Access Management (IAM) dan batasan keamanan secara otomatis ke beberapa project melalui pewarisan berbasis hierarki.
Penyelarasan bisnis: Buat struktur lingkungan cloud Anda untuk mencerminkan departemen, pusat biaya, atau siklus proses pengembangan organisasi Anda (seperti Dev, Staging, dan Prod).
Administrasi yang didelegasikan: Memberikan otonomi kepada tim tertentu untuk mengelola project dan sub-folder mereka sendiri tanpa memerlukan izin yang luas di tingkat organisasi.
Visibilitas biaya: Kelompokkan project terkait untuk menyederhanakan pelacakan pengeluaran dan meningkatkan analisis penagihan untuk unit bisnis atau aplikasi tertentu.
Isolasi keamanan: Tetapkan batas kepercayaan yang jelas untuk membatasi area yang terpengaruh oleh perubahan konfigurasi dan mengurangi risiko keamanan di berbagai lingkungan.
Membuat project dalam folder
Untuk membuat project dalam folder, Anda harus memiliki peran Project Creator
(roles/resourcemanager.projectCreator) di folder tersebut. Peran ini mungkin
diwarisi dari folder induk.
Konsol
- Di konsol Google Cloud , buka halaman Manage resources.
- Buka halaman Kelola Resource.
- Pilih resource organisasi Anda dari drop-down Organization di kiri atas halaman.
- Klik Create Project.
- Masukkan Project name.
- Di kotak Destination, klik Browse untuk memilih folder tempat Anda ingin membuat project.
- Klik Create.
gcloud
gcloud projects create PROJECT_ID --folder FOLDER_ID
Ganti kode berikut:
PROJECT_ID: ID project ID yang akan dibuatFOLDER_ID: ID folder tempat project harus dibuat.
REST
JSON permintaan:
request_json= '{
name: DISPLAY_NAME, projectId: PROJECT_ID, parent: {id: PARENT_ID, type: PARENT_TYPE}
}'
Permintaan curl:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/projects
Ganti kode berikut:
PROJECT_ID: ID unik project yang sedang dibuat. Contoh,my-awesome-proj-123.DISPLAY_NAME: nama tampilan project yang sedang dibuat.PARENT_ID: ID unik induk yang dibuat di bawahnya. Contoh,123.PARENT_TYPE: jenis induk, sepertifolderatauorganization.
Jangan menyertakan informasi sensitif dalam nama folder atau nama resource lainnya. Setiap referensi ke folder atau resource terkait akan mengekspos nama folder dan nama resource.
Memindahkan project ke folder
Anda harus mempertimbangkan dengan cermat implikasi kebijakan apa pun sebelum memindahkan project ke dalam atau ke luar folder. Kebijakan izin yang Anda tentukan di level project akan dipindahkan bersama project, tetapi kebijakan yang diwarisi dari resource induk tidak akan dipindahkan.
Saat Anda memindahkan project, kebijakan Identity and Access Management atau kebijakan organisasi yang terlampir langsung akan dipindahkan bersamanya. Namun, project dalam hierarki resource Anda juga dipengaruhi oleh kebijakan yang diwarisi dari resource induk. Jika project mewarisi peran IAM yang memberi pengguna izin untuk menggunakan layanan tertentu, pengguna tidak akan memiliki akses ke layanan tersebut di tujuan, kecuali jika pengguna juga akan mewarisi izin di tujuan.
Misalnya, pertimbangkan akun layanan yang memiliki peran Storage Object Creator yang terikat ke pengguna di Folder A. Akun layanan memiliki izin untuk mengupload data ke Cloud Storage di project mana pun dalam Folder A. Jika Anda memindahkan salah satu project ini ke Folder B, yang tidak memiliki izin turunan yang sama, akun layanan untuk project tersebut akan kehilangan kemampuan untuk mengupload data, sehingga mengakibatkan pemadaman layanan.
Pertimbangan yang sama ini berlaku jika kebijakan organisasi ditentukan di folder sumber dan tujuan. Seperti kebijakan IAM, kebijakan organisasi diwariskan. Oleh karena itu, Anda harus memastikan bahwa kebijakan organisasi Anda konsisten antara folder sumber dan tujuan.
Untuk mempelajari lebih lanjut kebijakan organisasi, lihat Pengantar Layanan Kebijakan Organisasi.
Untuk memindahkan project, Anda memerlukan peran IAM Project Mover
(roles/resourcemanager.projectMover) di folder sumber dan
folder tujuan. Jika resource tidak berada dalam folder, Anda memerlukan peran ini pada resource organisasi.
Peran ini memberi Anda izin yang diperlukan berikut:
resourcemanager.projects.updatepada project- Jika resource berada dalam folder:
resourcemanager.projects.movedi folder sumber dan tujuan - Jika resource tidak berada dalam folder:
resourcemanager.projects.movepada resource organisasi
Anda juga bisa mendapatkan izin ini dengan peran khusus, atau peran bawaan lainnya.
Konsol
Untuk memindahkan project:
Di konsol Google Cloud , buka halaman Manage resources.
Pilih Organisasi Anda dari drop-down Organization di kiri atas halaman.
Klik baris project untuk memilih project Anda dari daftar resource. Perhatikan bahwa Anda tidak boleh mengklik nama project, yang akan mengarahkan Anda ke halaman Identity and Access Management (IAM) project.
Klik menu opsi (ellipsis vertikal) di baris, lalu klik Move.
Klik Browse untuk memilih folder tempat Anda ingin memindahkan project.
Klik Pindahkan.
gcloud
Untuk memindahkan project, jalankan perintah
gcloud beta projects move:
gcloud beta projects move PROJECT_ID \ --DESTINATION_TYPE DESTINATION_ID
Ganti kode berikut:
PROJECT_ID: ID atau nomor project yang ingin Anda pindahkan.DESTINATION_TYPE: Jenis tujuan,organizationataufolder.DESTINATION_ID: ID resource atau folder organisasi tempat Anda ingin memindahkan project.
REST
Anda dapat menggunakan metode projects.move v3 untuk memindahkan project.
Permintaan:
POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
"destinationParent": DESTINATION_PARENT
}
Ganti kode berikut:
PROJECT_NAME: nama project yang ingin Anda perbarui. Misalnya,projects/415104041262DESTINATION_PARENT: resource organisasi induk atau folder baru tempat Anda ingin memindahkan project. Contoh:organizations/12345678901
Jika berhasil, permintaan akan menampilkan Operasi yang dapat digunakan untuk melacak pemindahan project.
Memindahkan folder ke folder lain
Untuk memindahkan folder ke folder lain, Anda harus memiliki izin resourcemanager.folders.move untuk folder sumber dan tujuan.
Konsol
Proses memindahkan folder ke folder lain di konsol mirip dengan memindahkan project.
- Di konsol Google Cloud , buka halaman Manage resources.
- Pilih resource organisasi Anda dari drop-down Organization di kiri atas halaman.
- Klik baris folder untuk memilih folder dari daftar project dan folder.
- Klik menu opsi (ellipsis vertikal) di baris, lalu klik Move.
- Klik Browse untuk memilih folder tujuan pemindahan folder.
- Klik Pindahkan.
gcloud
Untuk memindahkan folder di bawah resource organisasi, jalankan perintah berikut:
gcloud resource-manager folders move FOLDER_ID \
--organization=PARENT_ID
Ganti kode berikut:
FOLDER_ID: ID folder yang akan dipindahkanPARENT_ID: ID resource organisasi induk
Untuk memindahkan folder ke dalam folder lain, jalankan perintah berikut:
gcloud resource-manager folders move FOLDER_ID \
--folder=PARENT_ID
Ganti kode berikut:
FOLDER_ID: ID folder yang akan dipindahkanPARENT_ID: ID folder induk
REST
JSON permintaan:
request_json= '{
destinationParent: "folders/DESTINATION_FOLDER_ID"
}'
Permintaan curl Pindahkan Folder:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/DISPLAY_NAME:move
Ganti kode berikut:
- DESTINATION_FOLDER_ID: ID folder tempat Anda memindahkan folder lain, misalnya
98765. - DISPLAY_NAME: nama tampilan folder yang dipindahkan, misalnya "My Awesome Folder".
Respons Pindahkan Folder:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "MOVE"
}
}
Permintaan curl Get Operation:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890
Respons Get Operation:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "MOVE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "folders/98765",
"displayName": "DISPLAY_NAME",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-20T00:54:44.295Z"
}
}
Melihat atau mencantumkan project dalam folder
Untuk melihat atau mencantumkan project yang merupakan turunan langsung dari folder, Anda harus memiliki
peran Folder Viewer (roles/resourcemanager.folderViewer) atau peran Browser (roles/browser)
pada folder tersebut.
Konsol
Di konsol Google Cloud , buka halaman Manage resources.
Di menu drop-down Organization, pilih organisasi Anda.
Dalam daftar resource, klik nama folder untuk meluaskannya dan melihat project-nya.
Opsional: Gunakan panel Filter di bagian atas daftar untuk menelusuri project tertentu berdasarkan nama atau ID.
gcloud
Untuk mencantumkan semua project yang merupakan turunan langsung dari folder tertentu, gunakan
perintah gcloud projects list dengan filter:
gcloud projects list --filter="parent.id:FOLDER_ID AND parent.type:folder"
Ganti FOLDER_ID dengan ID unik folder.
REST
Gunakan metode projects.list dengan parameter kueri yang menentukan folder induk.
Permintaan HTTP: GET https://cloudresourcemanager.googleapis.com/v3/projects?parent=folders/FOLDER_ID
Contoh perintah curl:
Bash
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
"https://cloudresourcemanager.googleapis.com/v3/projects?parent=folders/FOLDER_ID"
Ganti FOLDER_ID dengan ID unik folder.
Memfilter project menurut Tag atau Label (Opsional)
Jika memiliki banyak project dalam folder, Anda dapat menggunakan filter untuk menemukan resource tertentu berdasarkan metadata.
Konsol
- Di panel Filter pada halaman Manage resources, ketik
Labels:key=valueuntuk mempersempit daftar ke project dengan label tertentu. Perhatikan bahwa konsol ini memberikan dukungan terbatas untuk pemfilteran visual menurut Tag; gunakan Google Cloud CLI untuk kueri Tag lanjutan.
gcloud
Untuk mencantumkan project dalam folder yang memiliki nilai Tag tertentu, gunakan flag --filter
dengan atribut tag:
gcloud projects list \ --filter="parent.id:FOLDER_ID AND tags.TAG_KEY_PARENT/TAG_KEY_SHORT_NAME:TAG_VALUE_SHORT_NAME"
Ganti kode berikut:
FOLDER_ID: ID unik folder.TAG_KEY_PARENT: ID resource induk kunci tag, seperti organisasi atau project.TAG_KEY_SHORT_NAME: nama pendek kunci tag.TAG_VALUE_SHORT_NAME: nama pendek nilai tag.
Untuk memfilter menurut Label:
gcloud projects list \ --filter="parent.id:FOLDER_ID AND labels.KEY=VALUE"
Ganti kode berikut:
FOLDER_ID: ID unik folder.KEY: kunci label.VALUE: nilai label.
Langkah berikutnya
- Pelajari cara melihat dan memperbarui project.
- Pelajari peran dan izin untuk mengelola project.