Menetapkan dan mengelola kebijakan IAM di folder terkelola

Halaman ini menjelaskan cara menetapkan kebijakan Identity and Access Management (IAM) pada folder terkelola, sehingga Anda bisa mendapatkan kontrol akses terperinci atas grup objek tertentu dalam bucket.

Jika Anda mencari metode kontrol akses lainnya, lihat referensi berikut:

Peran yang diperlukan

Guna mendapatkan izin yang Anda perlukan untuk menetapkan dan mengelola kebijakan IAM untuk folder terkelola, minta administrator untuk memberi Anda peran IAM Storage Folder Admin (roles/storage.folderAdmin) untuk bucket yang berisi folder terkelola.

Peran ini berisi izin berikut, yang diperlukan untuk menetapkan dan mengelola kebijakan IAM untuk folder terkelola:

  • storage.managedFolders.getIamPolicy

  • storage.managedFolders.setIamPolicy

Anda juga bisa mendapatkan izin ini dengan peran khusus.

Untuk mengetahui informasi tentang cara memberikan peran untuk bucket, lihat Menetapkan dan mengelola kebijakan IAM pada bucket.

Menetapkan kebijakan IAM pada folder terkelola

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang berisi folder terkelola yang ingin Anda tetapkan kebijakan IAM-nya.

  3. Di halaman Bucket details, klik ikon More options di panel Folder browser di samping folder terkelola yang ingin Anda tetapkan kebijakan IAM-nya.

    Jika Anda ingin mengontrol akses dalam folder atau folder simulasi, ikuti langkah-langkah di bagian Membuat folder terkelola untuk mengaktifkan pengelolaan pada folder atau folder simulasi.

  4. Klik Akses edit.

  5. Di panel Permissions for MANAGED_FOLDER_NAME, klik Add principal .

  6. Di kolom New principals, masukkan akun utama yang ingin Anda beri akses. Untuk mengetahui informasi selengkapnya tentang akun utama yang dapat Anda sertakan, lihat ID akun utama.

  7. Di bagian Assign roles, gunakan menu drop-down Select a role untuk menentukan tingkat akses yang ingin Anda berikan kepada akun utama.

  8. Klik Simpan.

Command line

Anda dapat memberikan akses ke folder terkelola menggunakan salah satu perintah berikut:

  • gcloud storage managed-folders add-iam-policy-binding: menambahkan satu binding peran untuk akun utama ke kebijakan IAM yang ada di folder terkelola. Binding yang sudah ada dalam kebijakan tidak akan berubah. Anda tidak perlu membuat file kebijakan untuk menggunakan perintah ini.

  • gcloud storage managed-folders set-iam-policy: mengganti seluruh kebijakan IAM folder terkelola dengan kebijakan yang Anda tentukan dalam file JSON. Setiap binding yang tidak disertakan dalam file JSON akan dihapus dari folder terkelola.

Untuk menambahkan binding peran ke kebijakan IAM folder terkelola, jalankan perintah gcloud storage managed-folders add-iam-policy-binding:

gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE

Ganti kode berikut:

  • BUCKET_NAME: nama bucket yang berisi folder terkelola yang ingin Anda beri akses utama—misalnya, my-bucket.

  • MANAGED_FOLDER_NAME: nama folder terkelola yang ingin Anda beri akses akun utama—misalnya, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER: akun utama yang Anda beri akses folder terkelola—misalnya, user:example-service-account@example-project.. Untuk daftar format ID utama, lihat ID utama.

  • IAM_ROLE: peran IAM yang Anda berikan—misalnya, roles/storage.objectViewer.

Untuk menyertakan kondisi IAM dalam binding peran, lihat Menetapkan kondisi baru pada folder terkelola.

Untuk mengganti seluruh kebijakan IAM folder terkelola, selesaikan langkah-langkah berikut:

  1. Buat file JSON yang berisi informasi berikut:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Ganti kode berikut:

    • IAM_ROLE: peran IAM yang Anda berikan—misalnya, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER: akun utama yang Anda beri akses folder terkelola—misalnya, user:example-service-account@example-project.. Untuk mengetahui daftar format ID utama, lihat ID utama.

    Sertakan setiap binding yang Anda inginkan untuk folder terkelola, karena binding dalam file ini menggantikan semua binding yang ada.

  2. Gunakan perintah gcloud storage managed-folders set-iam-policy:

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang ingin Anda terapkan kebijakan IAM—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang ingin Anda terapkan kebijakan IAM—misalnya, my-managed-folder/.

    • POLICY_FILE: jalur ke file JSON yang Anda buat di langkah 1.

REST API

JSON

  1. Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Buat file JSON yang berisi informasi berikut:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Ganti kode berikut:

    • IAM_ROLE: peran IAM yang Anda berikan—misalnya, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER: akun utama yang Anda beri akses folder terkelola—misalnya, user:example-service-account@example-project.. Untuk mengetahui daftar format ID utama, lihat ID utama.

  3. Gunakan cURL untuk memanggil JSON API dengan permintaan PUT setIamPolicy:

    curl -X PUT --data-binary @POLICY_FILE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Ganti kode berikut:

    • POLICY_FILE: jalur ke file kebijakan JSON yang Anda buat di langkah sebelumnya.

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang ingin Anda terapkan kebijakan IAM—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang ingin Anda beri akses akun utama—misalnya, my-managed-folder/.

Melihat kebijakan IAM untuk folder terkelola

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang berisi folder terkelola yang ingin Anda lihat kebijakan IAM-nya.

  3. Di halaman Bucket details, klik ikon More options di panel Folder browser di samping folder terkelola yang ingin Anda lihat kebijakan IAM-nya.

  4. Klik Akses edit.

Panel Permissions for FOLDER_NAME menampilkan izin pada folder terkelola, termasuk akun utama, peran, peran turunan, dan IAM Condition.

Command line

Gunakan perintah gcloud storage managed-folder get-iam-policy:

gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Ganti kode berikut:

  • BUCKET_NAME: nama bucket yang berisi folder terkelola yang kebijakan IAM-nya ingin Anda lihat—misalnya, my-bucket.

  • MANAGED_FOLDER_NAME: nama folder terkelola yang kebijakan IAM-nya ingin Anda lihat—misalnya, my-managed-folder/.

REST API

JSON

  1. Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang kebijakan IAM-nya ingin Anda lihat—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang kebijakan IAM-nya ingin Anda lihat—misalnya, my-managed-folder/.

Menghapus akun utama dari kebijakan folder terkelola

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang berisi folder terkelola yang ingin Anda lihat kebijakan IAM-nya.

  3. Di halaman Bucket details, klik ikon More options di panel Folder browser di samping folder terkelola yang ingin Anda hapus akun utamanya.

  4. Klik Akses edit.

  5. Di panel Permissions for FOLDER_NAME, masukkan nama akun utama di kolom Filter.

  6. Klik ikon Hapus untuk menghapus akun utama.

Cloud Storage akan menghapus akun utama dari folder terkelola Anda.

Command line

Gunakan perintah gcloud storage managed-folder remove-iam-policy-binding:

gcloud storage managed-folders remove-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE

Ganti kode berikut:

  • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda cabut—misalnya, my-bucket.

  • MANAGED_FOLDER_NAME: nama folder terkelola yang kebijakan IAM-nya ingin Anda hapus—misalnya, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER: akun utama yang aksesnya Anda cabut—misalnya, user:example-service-account@example-project.. Untuk daftar format ID utama, lihat ID utama.

  • IAM_ROLE: peran IAM yang Anda cabut—misalnya, roles/storage.objectViewer.

REST API

JSON

  1. Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Dapatkan kebijakan yang sudah ada dan terapkan ke folder terkelola Anda. Untuk melakukannya, gunakan cURL untuk memanggil JSON API dengan permintaan GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda cabut—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang kebijakan IAM-nya ingin Anda hapus—misalnya, my-managed-folder/.

  3. Buat file JSON berisi kebijakan yang Anda dapat di langkah sebelumnya.

  4. Edit file JSON untuk menghapus akun utama dari kebijakan.

  5. Gunakan cURL untuk memanggil JSON API dengan permintaan PUT setIamPolicy:

    curl -X PUT --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Ganti kode berikut:

    • JSON_FILE_NAME: jalur untuk file yang Anda buat di Langkah 3.

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda cabut—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang kebijakan IAM-nya ingin Anda hapus—misalnya, my-managed-folder/.

Menggunakan IAM Conditions pada folder terkelola

Bagian berikut menunjukkan cara menambahkan dan menghapus IAM Conditions di folder terkelola Anda. Untuk melihat IAM Conditions folder terkelola Anda, lihat Melihat kebijakan IAM untuk folder terkelola. Untuk informasi selengkapnya tentang penggunaan IAM Conditions dengan Cloud Storage, lihat Kondisi.

Folder terkelola dapat ditentukan sebagai resource dalam kondisi kebijakan izin IAM, tetapi tidak dapat ditentukan sebagai resource dalam kondisi kebijakan penolakan IAM. Kondisi penolakan hanya mengenali fungsi tag resource, dan tag tidak dapat dilampirkan ke folder terkelola.

Anda harus mengaktifkan akses level bucket yang seragam di bucket sebelum menambahkan kondisi ke folder terkelola.

Menetapkan kondisi baru pada folder terkelola

Command line

  1. Buat file JSON atau YAML yang menentukan kondisi, termasuk title kondisi, expression logika berbasis atribut untuk kondisi, dan, jika Anda mau, description kondisi tersebut.

    Perhatikan bahwa Cloud Storage hanya mendukung atribut tanggal/waktu, jenis resource, dan nama resource pada expression.

  2. Gunakan perintah gcloud storage managed-folders add-iam-policy-binding dengan flag --condition-from-file:

gcloud storage managed-folders add-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE

Ganti kode berikut:

  • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda berikan kepada akun utama—misalnya, my-bucket.

  • MANAGED_FOLDER_NAME: nama folder terkelola yang aksesnya Anda berikan kepada akun utama—misalnya, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER: akun utama yang menjadi sasaran penerapan kondisi—misalnya, user:example-service-account@example-project.. Untuk daftar format ID utama, lihat ID utama.

  • IAM_ROLE: peran IAM yang Anda berikan ke akun utama—misalnya, roles/storage.objectViewer.

  • CONDITION_FILE: file yang Anda buat di langkah sebelumnya.

Atau, Anda dapat menyertakan kondisi secara langsung dalam perintah dengan flag --condition, bukan flag --condition-from-file.

REST API

JSON

  1. Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan permintaan GET getIamPolicy untuk menyimpan kebijakan IAM folder terkelola ke file JSON sementara:

    curl \
    'https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang ingin Anda tetapkan Kondisi IAM-nya.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang ingin Anda tetapkan IAM Condition-nya.

  3. Edit file tmp-policy.json di editor teks untuk menambahkan kondisi baru ke binding dalam kebijakan IAM:

    {
        "version": VERSION,
        "bindings": [
          {
            "role": "IAM_ROLE",
            "members": [
              "PRINCIPAL_IDENTIFIER"
            ],
            "condition": {
              "title": "TITLE",
              "description": "DESCRIPTION",
              "expression": "EXPRESSION"
            }
          }
        ],
        "etag": "ETAG"
    }

    Ganti kode berikut:

    • VERSION: versi kebijakan IAM. Versi 3 diwajibkan untuk folder terkelola dengan IAM Conditions.

    • IAM_ROLE: peran yang menerapkan kondisi—misalnya, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER: akun utama yang menjadi sasaran penerapan kondisi—misalnya, user:example-service-account@example-project.. Untuk mengetahui daftar format ID utama, lihat ID utama.

    • TITLE: judul kondisi—misalnya, expires in 2019.

    • DESCRIPTION: deskripsi opsional kondisi—misalnya, Permission revoked on New Year's.

    • EXPRESSION: ekspresi logika berbasis atribut—misalnya, request.time < timestamp(\"2019-01-01T00:00:00Z\"). Untuk contoh ekspresi lainnya, lihat Referensi atribut kondisi. Cloud Storage hanya mendukung atribut tanggal/waktu, jenis resource, dan nama resource.

    Jangan ubah ETAG.

  4. Gunakan permintaan PUT setIamPolicy untuk menetapkan kebijakan IAM yang dimodifikasi pada bucket:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang ingin Anda tetapkan Kondisi IAM-nya.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang ingin Anda tetapkan IAM Condition-nya.

Menghapus kondisi dari folder terkelola

Command line

  1. Gunakan perintah gcloud storage managed-folders get-iam-policy untuk menyimpan kebijakan IAM folder terkelola ke file JSON sementara.

    gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
  2. Edit file tmp-policy.json di editor teks untuk menghapus kondisi dari kebijakan IAM.

  3. Gunakan perintah gcloud storage managed-folders set-iam-policy untuk menetapkan kebijakan IAM yang diubah pada folder terkelola.

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json

REST API

JSON

  1. Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header Authorization.

  2. Gunakan permintaan GET getIamPolicy untuk menyimpan kebijakan IAM folder terkelola ke file JSON sementara:

    curl \
    'https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda ubah—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang aksesnya Anda ubah—misalnya, my-managed-folder/.

  3. Edit file tmp-policy.json di editor teks untuk menghapus kondisi dari kebijakan IAM.

  4. Gunakan permintaan PUT setIamPolicy untuk menetapkan kebijakan IAM yang diubah pada folder terkelola:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    Ganti kode berikut:

    • BUCKET_NAME: nama bucket yang berisi folder terkelola yang aksesnya Anda ubah—misalnya, my-bucket.

    • MANAGED_FOLDER_NAME: nama folder terkelola yang aksesnya Anda ubah—misalnya, my-managed-folder/.

Menggunakan IAM dengan project

Lihat Mengelola akses ke project, folder terkelola, dan organisasi untuk panduan tentang memberikan dan mencabut peran IAM di level project dan yang lebih tinggi.

Praktik terbaik

Anda harus menetapkan peran minimum yang memungkinkan yang memberi akun utama akses yang diperlukan. Misalnya, jika anggota tim hanya perlu melihat folder terkelola di bucket, beri mereka peran Storage Object Admin (roles/storage.objectAdmin), bukan peran Storage Folder Admin (roles/storage.folderAdmin). Demikian pula, jika anggota tim memerlukan kontrol penuh atas folder terkelola dalam bucket, beri mereka peran Storage Folder Admin (roles/storage.folderAdmin), bukan peran Storage Admin (roles/storage.admin).

Langkah berikutnya