Membuat dan mengelola tampilan yang diotorisasi

Dokumen ini menjelaskan cara menentukan, membuat, dan menjalankan operasi administrative lainnya di tampilan resmi menggunakan Google Cloud CLI atau Konsol Google Cloud. Sebelum membaca dokumen ini, Anda harus memahami Ringkasan tampilan yang diotorisasi.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna melakukan operasi administratif pada tampilan yang diotorisasi, minta administrator untuk memberi Anda peran IAM Bigtable Admin (roles/bigtable.admin) pada tabel pokok. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk melakukan operasi administratif pada tampilan yang diotorisasi. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk melakukan operasi administratif pada tampilan yang diotorisasi :

  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.update
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.mutateRows

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mempelajari cara mengelola peran IAM Bigtable di tingkat tampilan yang diberi otorisasi, lihat pengelolaan IAM tingkat tampilan yang diberi otorisasi.

Membuat tampilan yang diotorisasi

Saat Anda membuat tampilan yang diotorisasi, pertimbangkan kueri yang akan dijalankan terhadap tampilan tersebut. Permintaan baca, tulis, dan hapus yang dikirim ke tampilan yang diotorisasi hanya boleh mereferensikan data yang ada dalam tampilan yang diotorisasi. Artinya, misalnya, jika Anda mencoba membaca, menulis ke, atau menghapus baris yang memiliki kolom dalam tabel yang tidak ada dalam tampilan yang diotorisasi, permintaan akan gagal.

Untuk menghindari situasi saat permintaan data ke tampilan yang diotorisasi gagal karena kolom telah ditambahkan ke tabel yang tidak ada dalam tampilan yang diotorisasi, Anda dapat menentukan awalan penentu kolom kosong "" untuk grup kolom.

Anda dapat menentukan hingga 100 parameter definisi per tampilan yang diotorisasi.

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tabel yang ingin Anda lihat dengan izin.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Klik Builder untuk membuka pembuat kueri.

  5. Pilih tabel yang tampilannya ingin Anda izinkan.

  6. Tambahkan klausa untuk membuat kueri yang hanya menampilkan data yang ingin Anda izinkan untuk diakses oleh pengguna tampilan resmi.

    • Klausa yang dapat diterima untuk tampilan yang diotorisasi adalah awalan kunci baris dan kolom (penentu kolom).
    • Untuk menentukan awalan penentu kolom, tambahkan tanda bintang setelah awalan. Misalnya, untuk menyertakan semua kolom yang dimulai dengan "data", masukkan data* di kolom Columns setelah nama keluarga kolom.
    • Klausa Limit diabaikan saat tampilan yang diotorisasi disimpan.
    • Untuk informasi selengkapnya tentang cara menggunakan pembuat kueri, lihat Mem-build kueri di konsol.
  7. Klik Run.

  8. Setelah Anda memverifikasi bahwa panel hasil menampilkan data yang harus disertakan dalam tampilan yang diotorisasi, klik Simpan sebagai tampilan.

  9. Masukkan ID permanen untuk tampilan resmi yang belum digunakan untuk tabel.

  10. Opsional: Untuk menyimpan tanpa memberikan akses, klik Simpan.

  11. Opsional: Untuk menyimpan tampilan yang diotorisasi, lalu mengonfigurasi akses untuknya, klik Simpan & berikan akses. Untuk informasi selengkapnya tentang kontrol akses, lihat Kontrol akses Bigtable dengan IAM.

    1. Tambahkan minimal satu akun utama dan pilih peran yang akan ditetapkan kepada akun utama atau grup akun utama tersebut.
    2. Opsional: Untuk memberikan akses untuk peran tambahan, klik Tambahkan peran lain, lalu masukkan akun utama dan peran untuk setiap peran tambahan.
    3. Klik Save.

gcloud

Jalankan perintah bigtable authorized-views create. Untuk informasi selengkapnya, lihat dokumentasi referensi di gcloud bigtable authorized-views create.

gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

Ganti kode berikut:

  • AUTHORIZED_VIEW_ID: ID permanen untuk tampilan yang diotorisasi yang belum digunakan untuk tabel
  • INSTANCE_ID: ID permanen untuk instance yang berisi tabel
  • TABLE_ID: ID permanen tabel yang Anda buat tampilan resminya
  • DEFINITION_FILE_PATH: jalur ke representasi berformat JSON yang valid dari tampilan yang diotorisasi. Untuk contoh file definisi yang diformat dengan benar, lihat Contoh file definisi.

Anda juga dapat menjalankan perintah tanpa memberikan file definisi. Dalam hal ini, gcloud CLI akan membuka editor dan meminta Anda memasukkan nilai.

Untuk mengonfirmasi bahwa tampilan yang diotorisasi telah dibuat, dapatkan daftar tampilan yang diotorisasi untuk tabel.

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Bigtable, lihat Library klien Bigtable.

Untuk melakukan autentikasi ke Bigtable, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

try {
  CreateAuthorizedViewRequest request =
      CreateAuthorizedViewRequest.of(tableId, authorizedViewId)
          .setAuthorizedViewType(
              SubsetView.create()
                  .addRowPrefix("")
                  .setFamilySubsets(
                      COLUMN_FAMILY,
                      FamilySubsets.create().addQualifierPrefix(COLUMN_QUALIFIER_NAME)));
  AuthorizedView authorizedView = adminClient.createAuthorizedView(request);
  System.out.printf("AuthorizedView: %s created successfully%n", authorizedView.getId());
} catch (NotFoundException e) {
  System.err.println(
      "Failed to create an authorized view from a non-existent table: " + e.getMessage());
}

Mengubah tampilan yang diotorisasi

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tampilan yang diotorisasi.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Di penjelajah, luaskan tabel dan Authorized views.

  5. Di samping tampilan yang diotorisasi yang ingin Anda ubah, klik menu tindakan more_vert, lalu klik Open.

  6. Ubah atau tambahkan klausa untuk membuat kueri yang hanya menampilkan data yang Anda inginkan agar dapat diakses oleh pengguna tampilan yang diotorisasi.

    • Klausa yang dapat diterima untuk tampilan yang diotorisasi adalah awalan kunci baris dan kolom (penentu kolom).
    • Untuk menentukan awalan penentu kolom, tambahkan tanda bintang setelah awalan. Misalnya, untuk menyertakan semua kolom yang dimulai dengan "data", masukkan data* di kolom Columns setelah nama keluarga kolom.
    • Klausa Limit diabaikan saat tampilan yang diotorisasi disimpan.
    • Untuk informasi selengkapnya tentang cara menggunakan pembuat kueri, lihat Mem-build kueri di konsol.
  7. Klik Run.

  8. Setelah Anda memverifikasi bahwa panel hasil menampilkan data yang harus disertakan dalam tampilan yang diotorisasi, klik Simpan sebagai tampilan.

  9. Dalam dialog, masukkan ID tampilan resmi yang telah Anda ubah.

    Dialog akan menampilkan pesan yang memperingatkan Anda bahwa Anda menimpa tampilan yang diotorisasi yang ada.

  10. Opsional: Untuk menyimpan tanpa memberikan akses, klik Simpan.

  11. Opsional: Untuk menyimpan tampilan yang diotorisasi, lalu mengonfigurasi akses untuknya, klik Simpan & berikan akses. Untuk informasi selengkapnya tentang kontrol akses, lihat Kontrol akses Bigtable dengan IAM.

    1. Tambahkan minimal satu akun utama dan pilih peran yang akan ditetapkan kepada akun utama atau grup akun utama tersebut.
    2. Opsional: Untuk memberikan akses untuk peran tambahan, klik Tambahkan peran lain, lalu masukkan akun utama dan peran untuk setiap peran tambahan.
    3. Klik Save.

gcloud

Ubah tampilan yang diotorisasi menggunakan perintah bigtable authorized-views update. Untuk informasi selengkapnya, lihat dokumentasi referensi di gcloud bigtable authorized-views update.

gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

Ganti kode berikut:

  • AUTHORIZED_VIEW_ID: ID permanen untuk tampilan yang diotorisasi
  • INSTANCE_ID: ID permanen untuk instance
  • TABLE_ID: ID permanen tabel sumber
  • DEFINITION_FILE_PATH: jalur ke representasi berformat JSON yang valid dari tampilan yang diotorisasi. Untuk contoh file definisi yang diformat dengan benar, lihat Contoh file definisi.

Anda juga dapat menjalankan perintah tanpa memberikan file definisi. Dalam hal ini, gcloud CLI akan membuka editor dan meminta Anda memasukkan nilai.

Opsional: Untuk mencegah gcloud CLI menampilkan perintah confirmasikan yang menunjukkan perbedaan antara struktur tampilan resmi saat ini dan setelah update dilakukan, tambahkan flag --no-interactive ke perintah.

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Bigtable, lihat Library klien Bigtable.

Untuk melakukan autentikasi ke Bigtable, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

try {
  // Update to an authorized view permitting everything.
  UpdateAuthorizedViewRequest request =
      UpdateAuthorizedViewRequest.of(tableId, authorizedViewId)
          .setAuthorizedViewType(
              SubsetView.create()
                  .addRowPrefix("")
                  .setFamilySubsets(
                      COLUMN_FAMILY, FamilySubsets.create().addQualifierPrefix("")));
  AuthorizedView authorizedView = adminClient.updateAuthorizedView(request);
  System.out.printf("AuthorizedView: %s updated successfully%n", authorizedView.getId());
} catch (NotFoundException e) {
  System.err.println("Failed to modify a non-existent authorized view: " + e.getMessage());
}

Mengaktifkan atau menonaktifkan perlindungan penghapusan

Untuk mengaktifkan perlindungan penghapusan untuk tampilan yang diotorisasi, tambahkan --deletion-protection ke perintah update.

Untuk menonaktifkan perlindungan penghapusan, tambahkan no-deletion-protection ke perintah update.

Menghapus tampilan yang diotorisasi

Jika Anda menghapus tabel, semua tampilan yang diotorisasi dari tabel tersebut juga akan dihapus.

Jika Anda menghapus tampilan yang diotorisasi, Anda tidak dapat membatalkan penghapusannya. Namun, jika Anda menghapus tabel, lalu membatalkan penghapusan tabel, semua tampilan tabel yang diotorisasi akan dipulihkan bersama dengan tabel. Kemudian, Anda harus mengonfigurasi ulang IAM untuk tampilan yang diotorisasi serta untuk tabel. Untuk mengetahui detailnya, lihat Membatalkan penghapusan tabel.

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tampilan yang diotorisasi.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Di penjelajah, luaskan tabel dan Authorized views.

  5. Di samping tampilan yang diberi otorisasi yang ingin Anda hapus, klik menu tindakan more_vert, lalu klik Delete.

gcloud

Hapus tampilan yang diotorisasi menggunakan perintah bigtable instances tables authorized-views delete. Untuk informasi selengkapnya, lihat dokumentasi referensi di gcloud bigtable authorized-views delete.

gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

Ganti kode berikut:

  • AUTHORIZED_VIEW_ID: ID permanen untuk tampilan yang diotorisasi
  • INSTANCE_ID: ID permanen untuk instance
  • TABLE_ID: ID permanen tabel sumber

Opsional: Untuk mencegah gcloud CLI menampilkan perintah dikonfirmasi yang mengharuskan Anda mengonfirmasi atau membatalkan penghapusan, tambahkan flag --nointeractive ke perintah.

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Bigtable, lihat Library klien Bigtable.

Untuk melakukan autentikasi ke Bigtable, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

try {
  adminClient.deleteAuthorizedView(tableId, authorizedViewId);
  System.out.printf("AuthorizedView: %s deleted successfully%n", authorizedViewId);
} catch (NotFoundException e) {
  System.err.println("Failed to delete a non-existent authorized view: " + e.getMessage());
}

Mendapatkan daftar tampilan yang diizinkan untuk tabel

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tampilan yang diotorisasi.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Di penjelajah, luaskan tabel dan Authorized views.

gcloud

Jalankan perintah bigtable authorized-views list. Untuk informasi selengkapnya, lihat dokumentasi referensi di daftar tampilan resmi gcloud bigtable.

gcloud bigtable authorized-views list \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

Ganti kode berikut:

  • INSTANCE_ID: ID permanen untuk instance
  • TABLE_ID: ID permanen untuk tabel

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Bigtable, lihat Library klien Bigtable.

Untuk melakukan autentikasi ke Bigtable, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

List<String> authorizedViewIds = new ArrayList<>();
try {
  authorizedViewIds = adminClient.listAuthorizedViews(tableId);
  for (String authorizedViewId : authorizedViewIds) {
    System.out.println(authorizedViewId);
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to list authorized views from a non-existent table: " + e.getMessage());
}

Melihat detail tentang tampilan yang diotorisasi

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tampilan yang diotorisasi.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Di penjelajah, luaskan tabel dan Authorized views.

  5. Di samping tampilan yang diotorisasi yang ingin Anda lihat, klik menu tindakan more_vert, lalu klik Buka.

gcloud

Untuk mendapatkan detail tentang tampilan yang diotorisasi, jalankan perintah bigtable instances tables authorized-views describe. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi di gcloud bigtable authorized-views describe.

gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
AUTHORIZED_VIEW_ID

Ganti kode berikut:

  • INSTANCE_ID: ID permanen untuk instance
  • TABLE_ID: ID permanen untuk tabel
  • AUTHORIZED_VIEW_ID: ID permanen untuk tampilan yang diotorisasi

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Bigtable, lihat Library klien Bigtable.

Untuk melakukan autentikasi ke Bigtable, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

AuthorizedView authorizedView = null;
try {
  authorizedView = adminClient.getAuthorizedView(tableId, authorizedViewId);
  SubsetView subsetView = (SubsetView) authorizedView.getAuthorizedViewType();

  for (ByteString rowPrefix : subsetView.getRowPrefixes()) {
    System.out.printf("Row Prefix: %s%n", rowPrefix.toStringUtf8());
  }
  for (Map.Entry<String, FamilySubsets> entry : subsetView.getFamilySubsets().entrySet()) {
    for (ByteString qualifierPrefix : entry.getValue().getQualifierPrefixes()) {
      System.out.printf(
          "Column Family: %s, Qualifier Prefix: %s%n",
          entry.getKey(), qualifierPrefix.toStringUtf8());
    }
    for (ByteString qualifier : entry.getValue().getQualifiers()) {
      System.out.printf(
          "Column Family: %s, Qualifier: %s%n", entry.getKey(), qualifier.toStringUtf8());
    }
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to retrieve metadata from a non-existent authorized view: " + e.getMessage());
}

Memberikan akses ke tampilan yang diotorisasi

Untuk informasi selengkapnya tentang kontrol akses, lihat Kontrol akses Bigtable dengan IAM.

Konsol

  1. Buka daftar instance Bigtable di konsol Google Cloud.

    Buka daftar instance

  2. Klik instance yang berisi tampilan yang diotorisasi.

  3. Di panel navigasi, klik Bigtable Studio.

  4. Di panel penjelajah, luaskan tabel dan Authorized views.

  5. Di samping nama tampilan yang diotorisasi, klik menu tindakan more_vert, lalu klik Berikan akses.

  6. Tambahkan minimal satu akun utama dan pilih peran yang akan ditetapkan kepada akun utama atau grup akun utama tersebut.

  7. Opsional: Untuk memberikan akses untuk peran tambahan, klik Tambahkan peran lain, lalu masukkan akun utama dan peran untuk setiap peran tambahan.

  8. Klik Save.

gcloud

Untuk memberikan akses ke tampilan yang diotorisasi, gunakan perintah bigtable authorized-views add-iam-policy-binding. Untuk informasi selengkapnya, lihat dokumentasi referensi di gcloud bigtable authorized-views add-iam-policy-binding.

gcloud bigtable authorized-views add-iam-policy-binding AUTH_VIEW_ID \
--instance=INSTANCE_ID --table=TABLE_ID \
--member=PRINCIPAL --role=ROLE

Ganti kode berikut:

  • AUTH_VIEW_ID: ID untuk tampilan yang diotorisasi
  • TABLE_ID: ID untuk tabel yang merupakan tampilan yang diotorisasi
  • INSTANCE_ID: instance yang berisi tabel
  • PRINCIPAL: akun utama (pengguna) yang ingin Anda beri akses, seperti user:222larabrown@gmail.com
  • ROLE: peran yang Anda berikan, seperti roles/bigtable.viewer.

Langkah selanjutnya