Menetapkan dan mengelola kebijakan IAM pada folder terkelola

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

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

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna menetapkan dan mengelola kebijakan IAM untuk folder terkelola, minta administrator Anda 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, baca artikel Menetapkan dan mengelola kebijakan IAM pada bucket.

Menetapkan kebijakan IAM pada folder terkelola

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Buckets

  2. Pada 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 tempat Anda ingin menetapkan kebijakan IAM.

    Jika folder yang ingin Anda kontrol aksesnya adalah folder simulasi, ikuti langkah-langkah di Membuat folder terkelola untuk terlebih dahulu mengonversi folder simulasi menjadi folder terkelola.

  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 utama.

  7. Di bagian Tetapkan peran, gunakan menu drop-down Pilih peran untuk menentukan tingkat akses yang ingin diberikan kepada akun utama.

  8. Klik Save.

Command line

  1. Buat file JSON yang berisi informasi berikut:

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

    Dengan keterangan:

    • IAM_ROLE adalah peran IAM yang Anda berikan. Misalnya, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER mengidentifikasi kepada siapa Anda memberi akses folder terkelola. Contoh, user:jane@gmail.com. Untuk daftar format ID utama, lihat ID utama.

  2. Gunakan gcloud storage managed-folders set-iam-policyperintah:

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

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola tempat Anda ingin menerapkan kebijakan IAM. Contoh, my-bucket.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola tempat Anda ingin menerapkan kebijakan IAM. Misalnya, my-managed-folder/.

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

REST API

JSON

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Buat file JSON yang berisi informasi berikut:

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

    Dengan keterangan:

    • IAM_ROLE adalah peran IAM yang Anda berikan. Contohnya, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER mengidentifikasi kepada siapa Anda memberi akses folder terkelola. Misalnya, user:jane@gmail.com. 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dengan keterangan:

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

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola tempat Anda ingin menerapkan kebijakan IAM. Contoh, my-bucket.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola yang ingin Anda berikan akses utamanya. Contoh, my-managed-folder/.

Melihat kebijakan IAM untuk folder terkelola

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Buckets

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

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

  4. Klik Akses edit.

Panel Izin untuk FOLDER_NAME menampilkan izin pada folder terkelola, termasuk akun utama, peran, peran yang diwarisi, dan kondisi IAM.

Command line

Gunakan gcloud storage managed-folder get-iam-policyperintah:

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

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang kebijakan IAM-nya ingin Anda lihat. Contoh, my-bucket.

  • MANAGED_FOLDER_NAME adalah nama folder terkelola yang kebijakan IAM-nya ingin Anda lihat. Misalnya, my-managed-folder/.

REST API

JSON

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang kebijakan IAM-nya ingin Anda lihat. Contoh, my-bucket.

    • MANAGED_FOLDER_NAME adalah 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 Bucket Cloud Storage.

    Buka Buckets

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

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

  4. Klik Akses edit.

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

  6. Klik ikon Delete untuk menghapus akun utama.

Cloud Storage menghapus akun utama dari folder terkelola.

Command line

Gunakan gcloud storage managed-folder remove-iam-policy-bindingperintah:

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

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang aksesnya Anda cabut. Misalnya, my-bucket.

  • MANAGED_FOLDER_NAME adalah nama folder terkelola yang kebijakan IAM-nya ingin Anda hapus. Misalnya, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER mengidentifikasi pihak yang Anda cabut aksesnya. Contoh, user:jane@gmail.com. Untuk daftar format ID utama, lihat ID utama.

  • IAM_ROLE adalah peran IAM yang Anda cabut. Misalnya, roles/storage.objectViewer.

REST API

JSON

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Mendapatkan kebijakan yang sudah ada yang diterapkan ke folder terkelola. 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang aksesnya Anda cabut. Misalnya, my-bucket.

    • MANAGED_FOLDER_NAME adalah 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dengan keterangan:

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

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang aksesnya Anda cabut. Misalnya, my-bucket.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola yang kebijakan IAM-nya ingin Anda hapus. Contoh, my-managed-folder/.

Menggunakan Kondisi IAM pada folder terkelola

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

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

Menetapkan kondisi baru di 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

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang Anda berikan akses utama. Contoh, my-bucket.

  • MANAGED_FOLDER_NAME adalah nama folder terkelola yang Anda beri akses utamanya. Misalnya, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER mengidentifikasi pada siapa kondisi berlaku. Contoh, user:jane@gmail.com. Untuk daftar format ID utama, lihat ID utama.

  • IAM_ROLE adalah peran IAM yang Anda berikan ke akun utama. Contohnya, roles/storage.objectViewer.

  • CONDITION_FILE adalah 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. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

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

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

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola tempat Anda ingin menetapkan Kondisi IAM.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola tempat Anda ingin menetapkan Kondisi IAM.

  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"
    }

    Dengan keterangan:

    • VERSION adalah versi kebijakan IAM, yang harus ditetapkan ke 3 untuk folder terkelola dengan Kondisi IAM.

    • IAM_ROLE adalah peran yang dikenai kondisi. Contoh, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER mengidentifikasi pada siapa kondisi berlaku. Contohnya, user:jane@gmail.com. Untuk daftar format ID utama, lihat ID utama.

    • TITLE adalah judul kondisi. Contohnya, expires in 2019.

    • DESCRIPTION adalah deskripsi opsional kondisi. Contoh, Permission revoked on New Year's.

    • EXPRESSION adalah ekspresi logika berbasis atribut. Contohnya, 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola tempat Anda ingin menetapkan Kondisi IAM.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola tempat Anda ingin menetapkan Kondisi IAM.

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. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

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

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

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang aksesnya Anda ubah. Misalnya, my-bucket.

    • MANAGED_FOLDER_NAME adalah 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 di 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.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang berisi folder terkelola yang aksesnya Anda ubah. Misalnya, my-bucket.

    • MANAGED_FOLDER_NAME adalah nama folder terkelola yang aksesnya Anda ubah. Misalnya, my-managed-folder/.

Menggunakan IAM dengan project

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

Praktik terbaik

Anda harus menetapkan peran minimum yang memungkinkan yang akan 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 di bucket, beri mereka peran Storage Folder Admin (roles/storage.folderAdmin), bukan peran Storage Admin (roles/storage.admin).

Langkah selanjutnya