Mempertahankan peran khusus dengan Deployment Manager

Latar belakang

Peran kustom Identity and Access Management memungkinkan Anda memberikan izin terperinci ke akun pengguna dan akun layanan. Tidak seperti peran bawaan, yang dikelola oleh Google dan diperbarui sebagaimana mestinya, peran khusus dikelola oleh organisasi Anda saat izin baru tersedia.

Cloud Deployment Manager dapat mempermudah konfigurasi dan pemeliharaan peran khusus Anda. Anda dapat menggunakan Deployment Manager untuk menjelaskan peran menggunakan file konfigurasi, yang kemudian dapat dimasukkan ke sistem kontrol sumber pilihan Anda. Bersama, Deployment Manager dan kontrol sumber dapat mempermudah pembuatan "config-as-code" untuk:

  • Melacak peran khusus yang berubah dari waktu ke waktu
  • Mempromosikan peran khusus melalui stage peluncuran saat diuji dan divalidasi
  • Mengotomasikan cara men-deploy peran di seluruh organisasi Anda

Sebelum memulai

  • Enable the IAM and Cloud Deployment Manager APIs.

    Enable the APIs

Skenario untuk mempertahankan peran khusus menggunakan Deployment Manager

Pertimbangkan skenario berikut yang menunjukkan manfaat penggunaan Deployment Manager untuk mengelola peran khusus:

  • Mengontrol akses ke izin baru: Anda memiliki peran khusus yang berisi izin untuk layanan Google Cloud. Layanan ini menambahkan fitur Beta baru dan mengekspos izin baru. Peran khusus Anda tidak akan mewarisi izin baru ini secara otomatis -- izin tersebut harus ditambahkan secara manual. Sampai izin baru ditambahkan ke peran khusus Anda, pengguna dalam organisasi Anda tidak akan dapat mengakses fitur Beta. Anda dapat menggunakan file konfigurasi dan kontrol sumber Deployment Manager untuk membantu mengaudit izin yang ada, memperbarui peran khusus jika diperlukan, dan mengelola histori revisi.
  • Pengelolaan siklus proses peran: Anda memiliki peran khusus baru yang ditetapkan, yaitu stage peluncuran ALPHA. Setelah peran khusus diuji dan divalidasi, Anda dapat menggunakan Deployment Manager untuk mengupdate konfigurasi peran khusus dan melanjutkannya ke tahap BETA tanpa menggunakan Konsol Google Cloud.
  • Memahami adopsi peran khusus: Dengan memiliki lebih banyak definisi peran khusus organisasi Anda dalam kontrol sumber, mempermudah Anda dalam berbagi, mempelajari pola penggunaan, dan menerapkan kontrol akses di berbagai project.

Memahami file konfigurasi Deployment Manager

Deployment Manager menggunakan tiga jenis file berbeda untuk menjelaskan deployment. Setiap jenis dijelaskan di bawah:

  • Configuration adalah file YAML yang mendeskripsikan resource dan propertinya. Untuk peran khusus Identity and Access Management (IAM), setiap file YAML menentukan semua properti untuk satu atau lebih peran khusus, seperti nama, deskripsi, dan izinnya.
  • Schemas menentukan semua properti yang memungkinkan untuk resource dan nilai defaultnya. Untuk peran khusus IAM, tersedia skema untuk peran khusus level project dan level organisasi.
  • Templates, yaitu file Jinja atau Python yang meningkatkan (kualitas) konfigurasi dengan memungkinkan Anda memecah konfigurasi menjadi bagian-bagian yang dapat digunakan kembali. Untuk peran khusus IAM, ada dua template yang disediakan: satu untuk peran khusus level project, dan satu untuk peran khusus level organisasi.

Untuk informasi selengkapnya tentang jenis-jenis ini, lihat Fundamental Deployment Manager.

Sebelum memulai

Jika Anda tidak terbiasa dengan Deployment Manager, selesaikan Panduan Memulai terlebih dahulu. Kemudian, ikuti langkah berikut:

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Deployment Manager and IAM APIs.

    Enable the APIs

  5. Menginstal Google Cloud CLI.
  6. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  8. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  9. Enable the Deployment Manager and IAM APIs.

    Enable the APIs

  10. Menginstal Google Cloud CLI.
  11. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init

Setelah langkah-langkah prasyarat ini diselesaikan, Anda dapat mulai menggunakan Deployment Manager dengan IAM untuk mengurus peran khusus Anda.

Memberikan izin ke akun layanan Google API

Untuk mengurus peran khusus menggunakan Deployment Manager, you Anda harus terlebih dahulu memberikan izin yang sesuai ke akun layanan Google API. Akun ini dibuat secara default untuk setiap organisasi dan project.

  1. Di konsol Google Cloud, buka halaman IAM.

    Buka halaman IAM

  2. Dari daftar akun utama, temukan akun utama dengan nama agen layanan Google API.

  3. Untuk mengedit peran akun layanan, klik tombol Edit , lalu tambahkan peran Roles > Role Administrator.

  4. Klik Save untuk menerapkan peran.

Setelah akun layanan Google API diberi izin untuk mengurus peran khusus, Anda dapat men-deploy sampel peran khusus menggunakan Deployment Manager.

Men-deploy peran khusus ke project Anda

Seperti yang dijelaskan di bagian di atas, Deployment Manager menggunakan kombinasi file konfigurasi untuk menjelaskan deployment. Untuk IAM, pertimbangkan dua contoh file berikut untuk peran khusus dalam project:

project_custom_role.yaml

imports:
- path: project_custom_role.jinja

resources:
- name: custom-role
  type: project_custom_role.jinja
  properties:
    roleId: myCustomRole
    title: My Title
    description: My description.
    includedPermissions:
    - iam.roles.get
    - iam.roles.list

File YAML ini menentukan properti peran khusus bernama custom-role, yang memberikan izin ke iam.roles.get dan iam.roles.list. Perhatikan bahwa ini mereferensikan file .jinja dua kali; referensi ini menggunakan nilai yang diberikan oleh template Jinja seperti yang dijelaskan di bawah ini.

project_custom_role.jinja

# Copyright 2017 Google LLC. All rights reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: custom-role
  type: gcp-types/iam-v1:projects.roles
  properties:
    parent: projects/{{ env["project"] }}

    roleId: {{ properties["roleId"] }}

    role:
      title: {{ properties["title"] }}

      description: {{ properties["description"] }}

      stage: {{ properties["stage"] }}

      includedPermissions: {{ properties["includedPermissions"] }}

File Jinja ini menyediakan template untuk peran khusus guna meminimalisir duplikasi properti yang sama di banyak peran. Nilai default disisipkan dari file .schema jika file YAML yang terkait tidak menentukan nilai untuk setiap properti.

Untuk menerapkan peran khusus ini dengan Deployment Manager:

  1. Download konten repositori GitHub ini ke komputer lokal Anda.
  2. Di jendela terminal, buka direktori examples/v2/iam_custom_role/jinja di repositori yang didownload. Direktori ini berisi file project_custom_role.yaml dan file Jinja terkait.
  3. Jalankan perintah berikut untuk men-deploy contoh peran khusus, dengan mengganti nilai placeholder your-deployment-name dengan nama deployment pilihan Anda:

    gcloud deployment-manager deployments create \
       your-deployment-name --config project_custom_role.yaml
    
  4. Tunggu hingga operasi selesai. Sidik jari deployment dan indikator progres menampilkan:

    The fingerprint of the deployment is PUo2fmKdoFdJqiLViHjT3Q==
    Waiting for create [operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc]...done.
    
  5. Jika operasi berhasil, Anda akan melihat pesan status berikut:

    Create operation operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc completed successfully.
    NAME         TYPE                             STATE      ERRORS  INTENT
    custom-role  gcp-types/iam-v1:projects.roles  COMPLETED  []
    

Melihat peran khusus yang di-deploy

Untuk melihat peran khusus Anda di Deployment Manager:

  1. Di jendela terminal, jalankan perintah berikut:

    gcloud deployment-manager deployments describe your-deployment-name
    
  2. Anda akan melihat deskripsi deployment, termasuk informasi komprehensif tentang status, error, dan lainnya.

    fingerprint: oaJoGesEFYvsAldP2bm5jQ==
    id: '3222872306422524501'
    insertTime: '2018-01-29T13:40:10.822-08:00'
    manifest: manifest-1517262010855
    name: your-deployment-name
    operation:
    endTime: '2018-01-29T13:40:26.500-08:00'
    name: operation-1517262010573-563f1172be0c9-ce5f0242-239fe1af
    operationType: insert
    progress: 100
    startTime: '2018-01-29T13:40:11.535-08:00'
    status: DONE
    user: id-7201362145@my-example-project.iam.gserviceaccount.com
    NAME         TYPE                             STATE      INTENT
    custom-role  gcp-types/iam-v1:projects.roles  COMPLETED
    
  3. Anda juga dapat melihat informasi mendetail tentang konfigurasi peran khusus dengan mengambil manifes deployment. Dalam output dari perintah describe di langkah 2 di atas, catat ID manifest. Salin ID ini, termasuk awalan manifest-, dan gunakan untuk mengganti nilai placeholder di bawah:

    gcloud deployment-manager manifests describe your-manifest-id \
        --deployment your-deployment-name
    
  4. Manifes berisi informasi lengkap tentang deployment peran khusus, termasuk konten mentah file sumber project_custom_role.yaml dan file project_custom_role.jinja. Secara khusus, perhatikan blok resources di dekat bagian bawah manifes, yang merangkum detail tentang peran khusus:

    ...
    resources:
    - name: custom-role
      properties:
        description: My description.
        includedPermissions:
        - iam.roles.get
        - iam.roles.list
        roleId: aCustomRole
        stage: ALPHA
        title: My Title
      resources:
      - name: custom-role
        type: gcp-types/iam-v1:projects.roles
      type: project_custom_role.jinja
    ...
    

Untuk melihat peran khusus Anda di Konsol Google Cloud:

  1. Di konsol Google Cloud, buka halaman IAM.

    Buka halaman IAM

  2. Pilih project, lalu klik Open.

  3. Di menu sebelah kiri, klik Roles.

  4. Klik nama peran khusus yang baru dibuat dari daftar. Tampilannya akan terlihat seperti screenshot di bawah ini: