Menggunakan kontrol akses berbasis peran

Halaman ini menjelaskan cara mulai menggunakan role-based access control (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 Anda.

Mengaktifkan RBAC untuk instance yang ada

Anda dapat mengaktifkan RBAC untuk instance Cloud Data Fusion yang sudah ada yang berjalan di versi 6.5 atau yang lebih baru.

Konsol

Untuk mengaktifkan RBAC di instance Cloud Data Fusion yang ada:

  1. Buka detail instance:
    1. Di konsol Google Cloud , buka halaman Cloud Data Fusion.

    2. Klik Instance, lalu klik nama instance untuk membuka halaman Instance details.

      Buka Instance

  2. Pastikan instance telah diupgrade ke versi 6.5 atau yang lebih baru. Jika instance lebih lama dari 6.5, upgrade instance ke versi 6.5 atau yang lebih baru.
  3. Klik Enable RBAC.
  4. Klik Simpan.
  5. Tunggu hingga operasi update 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 Cloud Data Fusion patch API. 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 memiliki instance yang sudah ada dengan RBAC diaktifkan, Anda dapat menonaktifkan RBAC jika diperlukan. Menonaktifkan RBAC tidak memengaruhi pipeline atau konfigurasi yang ada di instance. Fitur ini hanya menonaktifkan isolasi keamanan di seluruh namespace.

Konsol

Untuk menonaktifkan RBAC pada instance Cloud Data Fusion yang ada:

  1. Buka detail instance:

    1. Di konsol Google Cloud , buka halaman Cloud Data Fusion.

    2. Klik Instance, lalu klik nama instance untuk membuka halaman Instance details.

      Buka Instance

  2. Klik Nonaktifkan RBAC.

  3. Klik Simpan.

  4. Tunggu hingga operasi update instance selesai.

gcloud

Untuk menonaktifkan RBAC bagi 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

Nonaktifkan RBAC untuk instance yang ada dengan Cloud Data Fusion patch API. 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 yang mendukung RBAC

Konsol

Untuk membuat instance Cloud Data Fusion baru dengan RBAC diaktifkan:

  1. Buka halaman Instances Cloud Data Fusion.

  2. Klik Instances.

    Buka Instances

  3. Klik Buat instance, lalu masukkan detail instance.

  4. Pilih Enterprise edition. RBAC hanya didukung di edisi Enterprise.

  5. Di Advanced options, pilih Enable Granular Role-Based Access Control.

    Fitur ini hanya tersedia di instance yang menggunakan Cloud Data Fusion versi 6.5 dan yang lebih baru.

  6. 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 bawaan kepada pengguna (wajib)

Setelah RBAC diaktifkan, Anda memberikan peran kepada akun utama untuk mengizinkan mereka melakukan tindakan tertentu dalam instance atau namespace. Untuk memutuskan peran mana yang paling sesuai dengan persyaratan Anda, lihat Peran Cloud Data Fusion bawaan dan Rekomendasi keamanan.

Konsol

Untuk memberikan peran Cloud Data Fusion bawaan kepada akun utama:

  1. Buka halaman Izin Cloud Data Fusion.

    Buka Izin

  2. Klik Tambahkan .

    Dialog Tambahkan akses pengguna akan terbuka.

  3. Di kolom Anggota baru, masukkan daftar akun utama (email pengguna, grup, atau akun layanan) yang akan diberi peran.

  4. Centang kotak di samping setiap instance yang ingin Anda beri izin ini.

    Pilih instance

  5. Buka kolom Peran, lalu pilih drop-down di samping instance yang dipilih.

    1. Untuk memberikan izin administrator instance, pilih Admin Instance.

    2. Untuk memberikan izin tingkat namespace, pilih Pengguna Namespace.

      Memilih peran pengguna namespace

      1. Jika Anda memberikan izin tingkat namespace, klik Pilih.

        Dialog Tambahkan hak akses akan terbuka.

      2. Pilih namespace dan pilih peran Cloud Data Fusion yang telah ditentukan yang ingin Anda berikan untuk namespace.

      3. Klik Pilih untuk menyimpan setelan baru Anda.

      4. Opsional: Untuk memberikan izin namespace bagi instance lain, ulangi langkah 5.

  6. Klik Simpan.

    Untuk memverifikasi peran yang telah diberikan, lihat Memverifikasi peran di konsol Google Cloud .

gcloud

Anda dapat menggunakan Google Cloud CLI untuk mengontrol akses secara terprogram.

Untuk memberikan peran menggunakan gcloud CLI, gunakan daftar ID pengguna yang dibatasi 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)

Anda harus memberikan akses pengguna ke instance terlebih dahulu dengan memberikan peran Akses ke pengguna tersebut di instance:

  1. Ekspor variabel berikut dengan perintah berikut, 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.
  2. 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:

  1. Ekspor variabel berikut dengan perintah berikut, 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.
  2. Jalankan perintah berikut untuk menetapkan peran kepada akun utama di 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 bagi namespace, gunakan datafusion.operator
    • Untuk peran Developer untuk namespace, gunakan datafusion.developer
    • Untuk peran Pelihat untuk namespace, gunakan datafusion.viewer

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 mencantumkan 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)

Anda harus memberikan akses pengguna ke instance terlebih dahulu dengan memberikan peran Akses ke instance tersebut.

Sangat direkomendasikan: Gunakan gcloud CLI untuk memberikan peran Akses.

  1. Memberikan 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"'
    
  2. 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
    
  3. Tambahkan binding untuk peran dan pengguna dalam kebijakan. Contoh:

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/datafusion.accessor",
            "members": [
              "${USER_TYPE}:${USER_ID}"
            ]
          }
        ]
      }
    }
    
  4. 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:

  1. Ekspor variabel berikut dengan perintah berikut, 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.
  2. 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.

  3. 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 pokok keamanan dapat ditentukan dalam daftar members 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 bagi namespace, gunakan datafusion.operator
    • Untuk peran Developer untuk namespace, gunakan datafusion.developer
    • Untuk peran Pelihat untuk namespace, gunakan datafusion.viewer
  4. 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.

Buka Izin

Memverifikasi peran dengan file Kebijakan

Pastikan peran diberikan kepada pengguna yang tepat 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 berikutnya