Halaman ini menjelaskan cara mulai menggunakan kontrol akses berbasis peran (RBAC) di instance Cloud Data Fusion. RBAC tersedia di instance Cloud Data Fusion yang berjalan di versi 6.5 dan yang lebih baru.
Untuk mengetahui informasi selengkapnya, lihat ringkasan kontrol akses berbasis peran (RBAC).
Direkomendasikan: Kecuali jika diperlukan untuk tujuan otomatisasi, gunakan konsol Google Cloud untuk melakukan tugas RBAC.
Mengaktifkan RBAC untuk instance yang ada
Anda dapat mengaktifkan RBAC untuk instance Cloud Data Fusion yang ada dan berjalan dalam versi 6.5 atau yang lebih baru.
Konsol
Untuk mengaktifkan RBAC pada instance Cloud Data Fusion yang ada:
- Buka detail instance:
Di konsol Google Cloud, buka halaman Cloud Data Fusion.
Klik Instance, lalu klik nama instance untuk membuka halaman Detail instance.
- Pastikan instance telah diupgrade ke versi 6.5 atau yang lebih baru. Jika instance lebih lama dari versi 6.5, upgrade instance ke versi 6.5 atau yang lebih baru.
- Klik Enable RBAC.
- Klik Simpan.
- Tunggu hingga operasi pembaruan instance selesai.
gcloud
Untuk mengaktifkan RBAC pada instance Cloud Data Fusion yang ada, jalankan perintah berikut:
gcloud beta data-fusion instances update --enable_rbac --location=REGION INSTANCE_ID
REST API
Aktifkan RBAC untuk instance yang ada dengan patch Cloud Data Fusion. Tetapkan flag enableRbac
ke true
dan gunakan parameter kueri updateMask
menggunakan contoh perintah berikut:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "true"}'
Menonaktifkan RBAC untuk instance yang ada
Jika sudah memiliki instance dengan RBAC aktif, Anda dapat menonaktifkan RBAC jika perlu. Menonaktifkan RBAC tidak memengaruhi pipeline atau konfigurasi yang ada dalam instance. Tindakan ini hanya menonaktifkan isolasi keamanan di seluruh namespace.
Konsol
Untuk menonaktifkan RBAC pada instance Cloud Data Fusion yang ada:
Buka detail instance:
Di konsol Google Cloud, buka halaman Cloud Data Fusion.
Klik Instance, lalu klik nama instance untuk membuka halaman Detail instance.
Klik Disable RBAC.
Klik Simpan.
Tunggu hingga operasi pembaruan instance selesai.
gcloud
Untuk menonaktifkan RBAC untuk instance yang ada, gunakan argumen ---no-enable_rbac, bukan --enable-rbac.
gcloud beta data-fusion instances update --no-enable_rbac --location=REGION INSTANCE_ID
Contoh penggunaan:
gcloud beta data-fusion instances update --no-enable_rbac --location=us-east1 cdf-test-instance
REST API
Menonaktifkan RBAC untuk instance yang ada dengan patch Cloud Data Fusion. Tetapkan flag enableRbac
ke false
dan gunakan parameter kueri updateMask
menggunakan contoh perintah berikut:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "false"}'
Membuat instance baru berkemampuan RBAC
Konsol
Untuk membuat instance Cloud Data Fusion baru dengan RBAC diaktifkan:
Buka halaman Instance Cloud Data Fusion.
Klik Instances.
Klik Buat instance, lalu masukkan detail instance.
Pilih edisi Enterprise. RBAC hanya didukung dalam edisi Enterprise.
Di Advanced options, pilih Enable Granular Role-Based Access Control.
Fitur ini hanya tersedia pada instance yang menggunakan Cloud Data Fusion versi 6.5 dan yang lebih baru.
Klik Create.
gcloud
Untuk membuat instance baru yang mendukung RBAC, jalankan perintah berikut:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=REGION INSTANCE_ID \
--version=6.5.0
Contoh penggunaan:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=us-east1 \
--version=6.5.0
REST API
Untuk membuat instance yang mendukung RBAC menggunakan REST API, teruskan flag enableRbac
yang ditetapkan ke true
dalam opsi instance seperti yang ditunjukkan dalam perintah berikut:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=$INSTANCE -X POST -d '{"description": "RBAC CDF instance created through REST", "type": "ENTERPRISE", "enableRbac": "true"}'
Memberikan peran Cloud Data Fusion yang telah ditetapkan kepada pengguna (wajib)
Setelah RBAC diaktifkan, Anda memberikan peran ke akun utama agar dapat melakukan tindakan tertentu dalam instance atau namespace. Untuk menentukan peran yang paling sesuai dengan persyaratan Anda, lihat Peran Cloud Data Fusion yang telah ditetapkan dan Rekomendasi keamanan.
Konsol
Untuk memberikan peran Cloud Data Fusion yang telah ditetapkan kepada akun utama:
Buka halaman Izin Cloud Data Fusion.
Klik Add
.Dialog Tambahkan akses pengguna akan terbuka.
Di kolom Anggota baru, masukkan daftar akun utama (pengguna, grup, atau email akun layanan) yang akan diberikan peran.
Pilih kotak di samping setiap instance yang izinnya ingin Anda berikan.
Buka kolom Peran, lalu pilih drop-down di samping instance yang diinginkan.
Untuk memberikan izin admin instance, pilih Admin Instance.
Untuk memberikan izin tingkat namespace, pilih Namespace User.
Jika Anda memberikan izin tingkat namespace, klik Pilih.
Dialog Tambahkan hak akses akan terbuka.
Pilih namespace, lalu pilih peran Cloud Data Fusion standar yang ingin Anda berikan untuk namespace tersebut.
Klik Select untuk menyimpan setelan baru.
Opsional: Untuk memberikan izin namespace untuk instance lain, ulangi langkah 5.
Klik Simpan.
Untuk memverifikasi peran yang telah diberikan, lihat Memverifikasi peran di Google Cloud Console.
gcloud
Anda dapat menggunakan Google Cloud CLI untuk mengontrol akses secara terprogram.
Untuk memberikan peran menggunakan gcloud CLI, gunakan daftar ID pengguna yang dipisahkan koma dalam format berikut:
[user|group|serviceAccount][email_address]
Berikan nilai berikut:
user:useremail@example.com
group:groupemail@example.com
serviceAccount:serviceaccount@project.iam.gserviceaccount.com
Untuk contoh lainnya, lihat Memberikan peran.
Memberikan peran Instance Accessor (wajib)
Pertama-tama, Anda harus memberi pengguna akses ke instance dengan memberinya peran Aksesori di instance:
Ekspor variabel berikut dengan perintah berikut, dan ganti variabel dengan nilai Anda sendiri:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Ganti variabel berikut dengan nilai Anda sendiri:
- PROJECT_ID: Nama project Anda.
- INSTANCE_ID: Nama instance Anda.
- REGION: Region tempat project berada.
- EMAIL: Alamat email akun utama.
- USER_TYPE: Jenis pengguna dapat berupa salah satu dari: user, group, atau serviceAccount.
Jalankan perintah berikut untuk menetapkan peran:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --member="${USER_TYPE}:${USER_ID}" --role="roles/datafusion.accessor"
Memberikan peran ke namespace (bergantung pada kasus penggunaan)
Bergantung pada kasus penggunaan Anda, berikan peran dengan perintah berikut:
Ekspor variabel berikut dengan perintah berikut, dan ganti variabel dengan nilai Anda sendiri:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Ganti variabel berikut dengan nilai Anda sendiri:
- PROJECT_ID: Nama project Anda.
- INSTANCE_ID: Nama instance Anda.
- REGION: Region tempat project berada.
- NAMESPACE: Nama namespace.
- EMAIL: Alamat email akun utama.
- USER_TYPE: Jenis pengguna dapat berupa salah satu dari: user, group, atau serviceAccount.
Jalankan perintah berikut untuk menetapkan peran ke akun utama dalam namespace tertentu:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="roles/ROLE_NAME"
Ganti ROLE_NAME dengan salah satu nilai berikut:
- Untuk peran Editor untuk namespace, gunakan
datafusion.editor
- Untuk peran Operator untuk namespace, gunakan
datafusion.operator
- Untuk peran Developer untuk namespace, gunakan
datafusion.developer
- Untuk peran Viewer untuk namespace, gunakan
datafusion.viewer
- Untuk peran Editor untuk namespace, gunakan
Opsional: Mencabut peran namespace
Untuk mencabut peran yang diberikan kepada pengguna untuk namespace tertentu, gunakan perintah berikut:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
export USER_ID=EMAIL
# User type can be one of: user, group, or serviceAccount.
export USER_TYPE=USER_TYPE
export ROLE=ROLE_NAME
gcloud beta data-fusion remove-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="${ROLE}"
Opsional: Mencantumkan peran yang diberikan pada namespace tertentu
Untuk menampilkan daftar semua peran yang diberikan pada namespace tertentu, gunakan perintah berikut untuk mengambil kebijakan IAM:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
REST API
Memberikan peran Instance Accessor (wajib)
Pertama-tama, Anda harus memberi pengguna akses ke instance dengan memberinya peran Aksesori di instance.
Sangat direkomendasikan: Gunakan gcloud CLI untuk memberikan peran Aksesor.
Berikan peran pengakses pada instance:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL # User type can be one of: user, group, or serviceAccount. export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Ambil kebijakan IAM saat ini dan simpan dalam file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy > iam_policy.json
Tambahkan binding untuk peran dan pengguna dalam kebijakan. Contoh:
{ "policy": { "bindings": [ { "role": "roles/datafusion.accessor", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Perbarui kebijakan IAM instance:
gcurl \ -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:setIamPolicy
Memberikan peran ke namespace (bergantung pada kasus penggunaan)
Bergantung pada kasus penggunaan Anda, berikan peran dengan perintah berikut:
Ekspor variabel berikut dengan perintah berikut, dan ganti variabel dengan nilai Anda sendiri:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Ganti variabel berikut dengan nilai Anda sendiri:
- PROJECT_ID: Nama project Anda.
- INSTANCE_ID: Nama instance Anda.
- REGION: Region tempat project berada.
- NAMESPACE: Nama namespace.
- EMAIL: Alamat email akun utama.
- USER_TYPE: Jenis pengguna dapat berupa salah satu dari: user, group, atau serviceAccount.
Ambil kebijakan IAM saat ini dan simpan dalam file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:getIamPolicy > iam_policy.json
Ganti iam_policy.json dengan nama file Anda sendiri.
Tambahkan binding untuk peran dan pengguna dalam file kebijakan. Misalnya, file kebijakan mungkin terlihat seperti berikut:
{ "policy": { "bindings": [ { "role": "roles/ROLE_NAME", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Beberapa binding peran dapat ditentukan untuk kebijakan tertentu, dan beberapa utama dapat ditentukan dalam daftar anggota untuk binding peran tertentu. Untuk akun utama tertentu, ganti ROLE_NAME dengan salah satu nilai berikut:
- Untuk peran Editor untuk namespace, gunakan
datafusion.editor
- Untuk peran Operator untuk namespace, gunakan
datafusion.operator
- Untuk peran Developer untuk namespace, gunakan
datafusion.developer
- Untuk peran Viewer untuk namespace, gunakan
datafusion.viewer
- Untuk peran Editor untuk namespace, gunakan
Jalankan perintah berikut untuk memperbarui file kebijakan:
gcurl -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:setIamPolicy
Ganti iam_policy.json dengan nama file Anda sendiri.
Memverifikasi peran di konsol Google Cloud
Tinjau dan edit peran yang ada di halaman Izin Cloud Data Fusion.
Memverifikasi peran dengan file Kebijakan
Pastikan bahwa peran diberikan kepada pengguna yang benar dalam file Kebijakan IAM menggunakan gcloud CLI atau REST API.
Dalam contoh file Kebijakan IAM berikut, pengguna alice@example.com
memiliki peran Data Fusion Developer:
bindings:
- members:
- user:alice@example.com
role: roles/datafusion.developer
- members:
- user:bob@example.com
- serviceAccount:myserviceaccount@myproject.iam.gserviceaccount.com
role: roles/datafusion.operator
- members:
- user:james@example.com
- user:mike@example.com
- group:mygroup@googlegroups.com
role: roles/datafusion.editor
etag: BwXA8BAHYmw=
Mendapatkan Kebijakan IAM untuk instance
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy
Mendapatkan Kebijakan IAM untuk namespace
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export NAMESPACE=NAMESPACE
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/${NAMESPACE}:getIamPolicy
Langkah selanjutnya
- Pelajari lebih lanjut kontrol akses berbasis peran di Cloud Data Fusion.