Membuat tingkat akses berbasis perangkat

Dokumen ini menunjukkan cara administrator dapat membuat tingkat akses berdasarkan atribut perangkat (tingkat akses berbasis perangkat) menggunakan Pengelola Akses Konteks.

Tingkat akses adalah sekumpulan atribut yang digunakan untuk mengizinkan akses ke resource berdasarkan informasi kontekstual tentang permintaan. Sebagai administrator, Anda dapat membuat tingkat akses dasar atau tingkat akses kustom menggunakan atribut perangkat yang dikumpulkan oleh Verifikasi Endpoint.

Sebelum memulai

Membuat tingkat akses

Konsol

  1. Di konsol Google Cloud, buka halaman Access Context Manager.

    Buka Access Context Manager

  2. Jika diminta, pilih organisasi Anda.

  3. Di halaman Access Context Manager, klik Create access level.

  4. Di panel New Access Level, buat tingkat akses dasar atau tingkat akses kustom. Untuk mendapatkan petunjuk, luaskan bagian yang diperlukan.

    Membuat tingkat akses dasar

    1. Dalam kotak Judul tingkat akses, masukkan judul untuk tingkat akses.

      Judul harus berisi maksimal 50 karakter, diawali dengan huruf, dan hanya boleh berisi angka, huruf, garis bawah, serta spasi.

    2. Di bagian Create Conditions in, pilih Basic mode

      .
    3. Di bagian Kondisi, pilih atribut perangkat:
      1. Klik Device Policy.
      2. Pilih atribut yang diperlukan.

        Misalnya, jika Anda ingin menerapkan persetujuan admin di perangkat, pilih Wajibkan persetujuan admin.

    4. Klik Save.

    Tingkat akses yang baru dibuat ditampilkan di halaman Pengelola Akses Konteks.

    Membuat tingkat akses kustom

    1. Dalam kotak Judul tingkat akses, masukkan judul untuk tingkat akses.

      Judul harus berisi maksimal 50 karakter, diawali dengan huruf, dan hanya boleh berisi angka, huruf, garis bawah, serta spasi.

    2. Di bagian Buat Kondisi di, pilih Mode lanjutan.
    3. Di bagian Kondisi, masukkan ekspresi untuk tingkat akses kustom Anda. Kondisi tersebut harus di-resolve menjadi satu nilai boolean.

      Untuk menemukan atribut perangkat yang tersedia untuk ekspresi CEL, lihat atribut perangkat yang dikumpulkan oleh Verifikasi Endpoint.

      Ekspresi CEL berikut hanya mengizinkan akses dari perangkat yang dienkripsi:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

      Untuk mengetahui contoh dan informasi selengkapnya tentang dukungan Common Expression Language (CEL) dan tingkat akses kustom, lihat Spesifikasi tingkat akses kustom.

    4. Klik Save.

    Tingkat akses yang baru dibuat ditampilkan di halaman Pengelola Akses Konteks.

gcloud CLI

Untuk membuat tingkat akses, gunakan metode gcloud access-context-manager level create.

  1. Buat file .yaml.

    • Untuk tingkat akses dasar, tentukan atribut kebijakan perangkat untuk tingkat akses.

      Contoh: Untuk membatasi akses hanya bagi pengguna dengan penyimpanan perangkat yang dienkripsi, masukkan kode berikut dalam file .yaml.

        - devicePolicy:
            allowedEncryptionStatuses
              - ENCRYPTED
      
    • Untuk tingkat akses kustom, tentukan ekspresi CEL yang diformat sebagai pasangan nilai kunci tunggal: expression: "CEL_EXPRESSION"

      Contoh: Untuk membatasi akses hanya bagi pengguna dengan penyimpanan perangkat terenkripsi dan dengan status perangkat yang disetujui, masukkan kode berikut dalam file .yaml.

      expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
      

    Untuk mengetahui daftar atribut tingkat akses kebijakan perangkat dan format YAMLnya, lihat Atribut kebijakan perangkat. Untuk file YAML komprehensif yang berisi semua atribut yang mungkin, lihat contoh file YAML tingkat akses.

    Guna menemukan atribut perangkat yang tersedia untuk spesifikasi level kustom, lihat Atribut perangkat yang dikumpulkan oleh Verifikasi Endpoint.

  2. Buat tingkat akses.

    • Untuk tingkat akses dasar, jalankan perintah berikut:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --basic-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME
      
    • Untuk tingkat akses kustom, jalankan perintah berikut:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --custom-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME
      

    Dengan keterangan:

    • ACCESS_LEVEL_NAME adalah nama unik untuk tingkat akses. Formatnya harus sebagai berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

    • LEVEL_ID adalah nama untuk tingkat akses. Nama harus berisi maksimal 50 karakter, diawali dengan huruf, dan hanya boleh berisi angka, huruf, serta garis bawah.

    • TITLE adalah judul yang dapat dibaca manusia. Nama ini harus unik untuk kebijakan tersebut.

    • FILE_NAME adalah nama file .yaml. Untuk tingkat akses dasar, isinya berisi atribut kebijakan perangkat. Untuk tingkat akses kustom, kolom ini berisi ekspresi CEL yang diformat sebagai satu pasangan nilai kunci: `expression: "CEL_EKSPRESI".

    • POLICY_NAME adalah nama kebijakan akses organisasi Anda.

    Anda akan melihat output yang mirip dengan berikut ini:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

Buat tingkat akses menggunakan metode accessPolicies.accessLevels.create.

Membuat tingkat akses dasar

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • POLICY_ID: ID kebijakan akses organisasi Anda.
  • LEVEL_ID: nama untuk tingkat akses. Nama harus berisi maksimal 50 karakter, diawali dengan huruf, dan hanya boleh berisi angka, huruf, serta garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. ID tersebut harus memiliki format berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. ID ini harus unik untuk kebijakan.
  • DESCRIPTION: deskripsi tingkat akses dan penggunaannya.
  • CONDITION: daftar persyaratan untuk tingkat akses yang akan diberikan.

Metode HTTP dan URL:

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Isi JSON permintaan:


For basic access levels:

{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,

  "basic": {
  "conditions": [
    {
    CONDITION
    }
   ],
  }
 },
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:


{
  "name": "operations/accessPolicies/84961948973/accessLevels/deviceEncrypted/create/1666896068847514",
  "metadata": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel",
    "name": "accessPolicies/84961948973/accessLevels/deviceEncrypted",
    "title": "accessPolicies/84961948973/accessLevels/deviceEncrypted",
    "basic": {
      "conditions": [
        {
          "devicePolicy": {
            "allowedEncryptionStatuses": [
              "ENCRYPTED"
            ]
          }
        }
      ]
    }
  }
}

Membuat tingkat akses kustom

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • POLICY_ID: ID kebijakan akses organisasi Anda.
  • LEVEL_ID: nama untuk tingkat akses. Nama harus berisi maksimal 50 karakter, diawali dengan huruf, dan hanya boleh berisi angka, huruf, serta garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. ID tersebut harus memiliki format berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. ID ini harus unik untuk kebijakan.
  • DESCRIPTION: deskripsi tingkat akses dan penggunaannya.
  • CEL_EXPRESSION: Ekspresi CEL yang dievaluasi ke boolean.

Metode HTTP dan URL:

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Isi JSON permintaan:


{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,

  "custom": {
   "conditions": [
     {
      "expr": {
     CEL_EXPRESSION
     }
    }
   ]
  }
 },
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:


{
  "name": "operations/accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName/create/1666936427127701",
  "metadata": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel",
    "name": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName",
    "title": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelTitle",
    "custom": {
      "expr": {
        "expression": "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED"
      }
    }
  }
}

Untuk mengetahui informasi selengkapnya tentang cara membuat tingkat akses dengan berbagai kondisi dan dependensi tingkat akses, lihat Membuat tingkat akses dasar.

Langkah selanjutnya