Halaman ini menjelaskan cara memulihkan versi sebelumnya dari kebijakan izin IAM setelah melakukan perubahan yang tidak disengaja atau penghapusan yang tidak disengaja.
Untuk memulihkan kebijakan IAM sebelumnya, temukan setIamPolicy yang berhasil terakhir sebelum perubahan atau penghapusan dan gunakan untuk memulihkan kebijakan.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk memulihkan kebijakan izin sebelumnya, minta administrator untuk memberi Anda peran IAM berikut pada project, folder, atau organisasi:
-
Memulihkan kebijakan izin dengan
setIamPolicy:- Logging Viewer (
roles/logging.viewer) - Organization Administrator (
roles/resourcemanager.organizationAdmin) - Pemilik (
roles/owner)
- Logging Viewer (
-
Memulihkan kebijakan izin dengan Cloud Asset Inventory:
Cloud Asset Owner (
roles/cloudasset.owner)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Saat memulihkan kebijakan izinkan dengansetIamPolicy, peran Administrator
Organisasi diperlukan untuk kebijakan izinkan tingkat organisasi dan folder, dan peran Pemilik diperlukan untuk kebijakan izinkan tingkat project.
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Memulihkan kebijakan izinkan dengan instance setIamPolicy yang terakhir berhasil
Untuk memulihkan kebijakan izin ke versi sebelumnya, Anda dapat meninjau log audit
untuk instance setIamPolicy yang terakhir berhasil sebelum perubahan atau
penghapusan dan menggunakan informasi dari instance tersebut untuk memulihkan kebijakan. Proses
ini mencakup langkah-langkah berikut:
- Identifikasi instance
setIamPolicyterakhir yang berhasil untuk kebijakan izin dan ambilinsertId. - Gunakan
insertIddari permintaansetIamPolicyuntuk mengekspor kebijakan izin dalam format YAML atau JSON. - Ubah file output agar sesuai dengan kebijakan izin kerja sebelumnya dan ganti kebijakan izin saat ini.
Identifikasi instance setIamPolicy terakhir yang berhasil dan ambil insertId
Untuk mengidentifikasi instance setIamPolicy yang terakhir berhasil dan mengambil
isertId, gunakan konsol Cloud de Confiance atau gcloud CLI untuk meninjau
log audit Anda.
Konsol
Di konsol Cloud de Confiance , buka halaman Logs Explorer.
Di editor kueri, masukkan salah satu kueri berikut. Kueri ini menelusuri log audit Anda untuk menemukan entri yang memiliki
SetIamPolicydi kolommethodNamepadaprotoPayload:Untuk mendapatkan log semua perubahan kebijakan izin yang dilakukan pada resource, gunakan kueri berikut:
logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" protoPayload.methodName:SetIamPolicy
Untuk mendapatkan log perubahan kebijakan izinkan yang melibatkan pengguna atau akun layanan tertentu, gunakan kueri berikut:
logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" protoPayload.methodName:SetIamPolicy protoPayload.serviceData.policyDelta.bindingDeltas.member:"EMAIL_ADDRESS"
Ganti kode berikut:
RESOURCE_TYPE: Jenis resource yang log auditnya ingin Anda cantumkan. Nilai yang valid adalahprojects,folders, atauorganizations.RESOURCE_ID: ID Cloud de Confiance project, folder, atau organisasi Anda. Project ID berupa alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012.EMAIL_ADDRESS: Alamat email pengguna atau akun layanan—misalnya,example-service-account@example-project.s3ns.iam.gserviceaccount.com.
Untuk menjalankan kueri, klik Run query.
Gunakan pemilih Rentang Waktu untuk menentukan rentang waktu yang sesuai untuk kueri. Atau, Anda dapat menambahkan ekspresi stempel waktu langsung ke editor kueri. Untuk mengetahui informasi selengkapnya, lihat Melihat log menurut rentang waktu.
Salin
insertIddari instancesetIamPolicyterakhir yang berhasil sebelum perubahan atau penghapusan.
gcloud
Perintah
gcloud logging read
membaca entri log.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
RESOURCE_TYPE: Jenis resource yang log auditnya Anda cantumkan. Gunakan nilaiprojects,folders, atauorganizations. -
RESOURCE_ID: ID Cloud de Confiance project, organisasi, atau folder Anda. Project ID adalah string alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012. -
TIME_PERIOD: Periode waktu yang Anda gunakan untuk mencantumkan log audit. Entri yang ditampilkan tidak lebih lama dari nilai ini. Jika tidak ditentukan, nilai defaultnya adalah1d. Untuk informasi tentang format waktu, lihat gcloud topic datetimes. -
RESOURCE_TYPE_SINGULAR: Jenis resource yang log auditnya Anda cantumkan. Gunakan nilaiproject,folder, atauorganization.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud logging read \ 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' \ --freshness=TIME_PERIOD \ --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
Windows (PowerShell)
gcloud logging read ` 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' ` --freshness=TIME_PERIOD ` --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
Windows (cmd.exe)
gcloud logging read ^ 'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity AND protoPayload.methodName=SetIamPolicy' ^ --freshness=TIME_PERIOD ^ --RESOURCE_TYPE_SINGULAR=RESOURCE_ID
Salin insertId dari instance setIamPolicy terakhir yang berhasil sebelum
perubahan atau penghapusan.
Gunakan insertId untuk mengekspor kebijakan izin
Gunakan insertId yang Anda ambil dari instance setIamPolicy yang terakhir berhasil untuk menjalankan perintah berikut di gcloud CLI guna mengekspor kebijakan izin dalam format JSON atau YAML. Anda dapat mengekspor kebijakan izin
untuk organisasi dan project.
Tingkat organisasi
Perintah
gcloud logging read
membaca entri log.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
ORGANIZATION_ID: Organisasi yang ingin Anda lihat dan ekspor kebijakan izinkannya. -
INSERT_ID:insertIdpermintaansetIamPolicy. -
FORMAT: Format respons. Gunakanjsonatauyaml. -
TIME_PERIOD: Periode waktu yang Anda cantumkan untuk log audit. Entri yang ditampilkan tidak lebih lama dari nilai ini. Jika tidak ditentukan, nilai defaultnya adalah1d. Untuk informasi tentang format waktu, lihat gcloud topic datetimes. -
OUTPUT_FILE: Nama dan ekstensi file untuk output. Contohprevious_policy.jsonatauprevious_policy.yaml.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
Windows (PowerShell)
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
Windows (cmd.exe)
gcloud logging read organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com insertId="INSERT_ID"' --organization=ORGANIZATION_ID --format="FORMAT(protoPayload.request.policy)" --freshness=TIME_PERIOD > OUTPUT_FILE
Level project
Perintah
gcloud logging read
membaca entri log.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
INSERT_ID:insertIdpermintaansetIamPolicy. -
TIME_PERIOD: Periode waktu yang Anda cantumkan untuk log audit. Entri yang ditampilkan tidak lebih lama dari nilai ini. Jika tidak ditentukan, nilai defaultnya adalah1d. Untuk informasi tentang format waktu, lihat gcloud topic datetimes. -
FORMAT: Format respons. Gunakanjsonatauyaml. -
OUTPUT_FILE: Nama file tempat Anda ingin menyimpan output—misalnya,previous_policy.jsonatauprevious_policy.yaml.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud logging read \ 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' \ --freshness=TIME_PERIOD \ --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
Windows (PowerShell)
gcloud logging read ` 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' ` --freshness=TIME_PERIOD ` --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
Windows (cmd.exe)
gcloud logging read ^ 'protoPayload.methodName="SetIamPolicy" AND insertId="INSERT_ID"' ^ --freshness=TIME_PERIOD ^ --format="FORMAT(protoPayload.request.policy)" > OUTPUT_FILE
Mengubah file output dan mengganti kebijakan izin saat ini
Ubah file output dengan cara berikut dan ganti kebijakan izin saat ini.
Secara terprogram atau menggunakan editor teks, ubah file output dengan menghapus baris berikut:
--- protoPayload: request: policy:File yang dihasilkan dimulai dengan
auditConfigs:.Dapatkan kebijakan izin saat ini.
gcloud
Perintah
gcloud get-iam-policymendapatkan kebijakan izin project, folder, atau organisasi.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
RESOURCE_TYPE: Jenis resource yang ingin Anda dapatkan kebijakan izinnya. Nilai yang valid adalahprojects,resource-manager folders, atauorganizations. -
RESOURCE_ID: Project, folder, atau ID organisasi Cloud de Confiance Anda. Project ID berupa alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012. -
FORMAT: Format yang diinginkan untuk kebijakan izinkan. Gunakanjsonatauyaml. -
PATH: Jalur ke file output baru untuk kebijakan izinkan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Windows (PowerShell)
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Windows (cmd.exe)
gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Misalnya, perintah berikut mendapatkan kebijakan izinkan untuk project
my-projectdan menyimpannya ke direktori beranda Anda dalam format JSON:gcloud projects get-iam-policy my-project --format json > ~/policy.json
C#
Untuk mengautentikasi ke Resource Manager, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Resource Manager, lihat library klien Resource Manager.
Contoh berikut menunjukkan cara mendapatkan kebijakan izinkan untuk project. Untuk mempelajari cara mendapatkan kebijakan izin folder atau organisasi, tinjau dokumentasi library klien Resource Manageruntuk bahasa pemrograman Anda.
Java
Untuk mengautentikasi ke Resource Manager, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Resource Manager, lihat library klien Resource Manager.
Contoh berikut menunjukkan cara mendapatkan kebijakan izinkan untuk project. Untuk mempelajari cara mendapatkan kebijakan izin folder atau organisasi, tinjau dokumentasi library klien Resource Manageruntuk bahasa pemrograman Anda.
Python
Untuk mengautentikasi ke Resource Manager, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Resource Manager, lihat library klien Resource Manager.
Contoh berikut menunjukkan cara mendapatkan kebijakan izinkan untuk project. Untuk mempelajari cara mendapatkan kebijakan izin folder atau organisasi, tinjau dokumentasi library klien Resource Manageruntuk bahasa pemrograman Anda.
REST
Metode Resource Manager API
get-iam-policymendapatkan kebijakan izin project, folder, atau organisasi.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
API_VERSION: Versi API yang akan digunakan. Untuk project dan organisasi, gunakanv1. Untuk folder, gunakanv2.RESOURCE_TYPE: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilaiprojects,folders, atauorganizations.RESOURCE_ID: ID Cloud de Confiance project, organisasi, atau folder Anda. Project ID adalah string alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012.POLICY_VERSION: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Responsnya berisi kebijakan izin resource. Contoh:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com" ] } ] }Simpan respons dalam file dengan jenis yang sesuai (
jsonatauyaml).-
Salin nilai
etagdari kebijakan izin saat ini.Ganti nilai
etagdalam file output dengan nilaietagyang Anda salin dari kebijakan izin saat ini.etagdalam file output harus cocok denganetagsaat ini untuk memulai permintaansetIamPolicybaru. Pastikan bahwa jarak untuk etag tidak berubah dalam file output.Tinjau file untuk memastikan file tersebut cocok dengan kebijakan izin kerja sebelumnya. Anda dapat mempertimbangkan untuk membuat project baru dan menerapkan kebijakan untuk memastikan kebijakan tersebut berfungsi sebagaimana mestinya.
Tetapkan kebijakan izin untuk menggantikan kebijakan izin saat ini dengan kebijakan izin di file output yang Anda buat.
gcloud
Perintah
gcloud set-iam-policymenetapkan kebijakan dalam permintaan sebagai kebijakan izin baru untuk project, folder, atau organisasi.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
RESOURCE_TYPE: Jenis resource yang ingin Anda tetapkan kebijakan izinya. Nilai yang valid adalahprojects,resource-manager folders, atauorganizations. -
RESOURCE_ID: Project, folder, atau ID organisasi Cloud de Confiance Anda. Project ID berupa alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012. -
PATH: Jalur ke file yang berisi kebijakan izinkan baru.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (PowerShell)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Windows (cmd.exe)
gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Respons berisi kebijakan izin yang diperbarui.
Misalnya, perintah berikut menetapkan kebijakan izinkan yang disimpan di
policy.jsonsebagai kebijakan izinkan untuk projectmy-project:gcloud projects set-iam-policy my-project ~/policy.json
C#
Java
Untuk mengautentikasi ke Resource Manager, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Resource Manager, lihat library klien Resource Manager.
Contoh berikut menunjukkan cara menetapkan kebijakan izinkan untuk project. Untuk mempelajari cara menetapkan kebijakan izinkan untuk folder atau organisasi, tinjau dokumentasi library klien Resource Manageruntuk bahasa pemrograman Anda.
Python
Untuk mengautentikasi ke Resource Manager, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Resource Manager, lihat library klien Resource Manager.
Contoh berikut menunjukkan cara menetapkan kebijakan izinkan untuk project. Untuk mempelajari cara menetapkan kebijakan izinkan untuk folder atau organisasi, tinjau dokumentasi library klien Resource Manageruntuk bahasa pemrograman Anda.
REST
Metode Resource Manager API
set-iam-policymenetapkan kebijakan dalam permintaan sebagai kebijakan izin baru untuk project, folder, atau organisasi.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
API_VERSION: Versi API yang akan digunakan. Untuk project dan organisasi, gunakanv1. Untuk folder, gunakanv2.RESOURCE_TYPE: Jenis resource yang ingin Anda kelola kebijakannya. Gunakan nilaiprojects,folders, atauorganizations.RESOURCE_ID: ID Cloud de Confiance project, organisasi, atau folder Anda. Project ID adalah string alfanumerik, sepertimy-project. Folder dan ID organisasi berupa numerik, seperti123456789012.-
POLICY: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat referensi Kebijakan.
Metode HTTP dan URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
Meminta isi JSON:
{ "policy": POLICY }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
-