Membuat tingkat akses berbasis perangkat

Dokumen ini menunjukkan cara administrator membuat tingkat akses berdasarkan atribut perangkat (tingkat akses berbasis perangkat) menggunakan Access Context Manager.

Tingkat akses adalah kumpulan 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 Buat tingkat akses.

  4. Di panel Tingkat Akses Baru, buat tingkat akses dasar atau tingkat akses kustom. Untuk mengetahui petunjuknya, luaskan bagian yang diperlukan.

    Membuat tingkat akses dasar

    1. Di kotak Access level title, masukkan judul untuk tingkat akses.

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

    2. Di bagian Create Conditions in, pilih Basic mode

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

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

    4. Klik Simpan.

    Tingkat akses yang baru dibuat akan ditampilkan di halaman Access Context Manager.

    Membuat tingkat akses kustom

    1. Di kotak Access level title, masukkan judul untuk tingkat akses.

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

    2. Di bagian Create Conditions in, pilih Advanced mode.
    3. Di bagian Kondisi, masukkan ekspresi untuk tingkat akses kustom Anda. Kondisi harus di-resolve ke satu nilai boolean.

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

      Ekspresi CEL berikut hanya mengizinkan akses dari perangkat terenkripsi:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

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

    4. Klik Simpan.

    Tingkat akses yang baru dibuat akan ditampilkan di halaman Access Context Manager.

gcloud CLI

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

  1. Buat file .yaml.

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

      Contoh: Untuk membatasi akses hanya untuk pengguna dengan penyimpanan perangkat terenkripsi, masukkan kode berikut dalam file .yaml.

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

      Contoh: Untuk membatasi akses hanya kepada 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 YAML-nya, lihat Atribut kebijakan perangkat. Untuk file YAML yang komprehensif dari semua kemungkinan atribut, lihat contoh file YAML tingkat akses ini.

    Untuk menemukan atribut perangkat yang tersedia untuk spesifikasi tingkat 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 seperti berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

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

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

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

    • 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 maksimal 50 karakter, dimulai dengan huruf, dan hanya dapat berisi angka, huruf, dan garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. Formatnya harus seperti berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. Nama 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 maksimal 50 karakter, dimulai dengan huruf, dan hanya dapat berisi angka, huruf, dan garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. Formatnya harus seperti berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. Nama 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 informasi selengkapnya tentang cara membuat tingkat akses dengan berbagai kondisi dan dependensi tingkat akses, lihat Membuat tingkat akses dasar.

Langkah selanjutnya