Membuat tingkat akses berbasis perangkat

Dokumen ini menunjukkan cara administrator dapat 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 Google Cloud konsol, 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, perluas bagian yang diperlukan.

    Membuat tingkat akses dasar

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

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

    2. Di bagian Buat Kondisi di , pilih Mode dasar

      .
    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 Judul tingkat akses, masukkan judul untuk tingkat akses.

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

    2. Di bagian Buat Kondisi di , pilih Mode lanjutan.
    3. Di bagian Kondisi, masukkan ekspresi untuk tingkat akses kustom Anda. Kondisi harus diselesaikan ke satu nilai boolean nilai.

      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 mengetahui 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 bagi pengguna dengan penyimpanan perangkat terenkripsi, masukkan hal berikut di 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 bagi pengguna dengan penyimpanan perangkat terenkripsi dan dengan status perangkat yang disetujui, masukkan hal berikut di 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 mengetahui file YAML komprehensif dari semua atribut yang mungkin, 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:

    • ACCESS_LEVEL_NAME adalah nama unik untuk tingkat akses. Nama ini harus memiliki format berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

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

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

    • FILE_NAME adalah nama file .yaml. Untuk tingkat akses dasar, file ini berisi atribut kebijakan perangkat. Untuk tingkat akses kustom, file 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 terdiri dari maksimal 50 karakter, diawali dengan huruf, dan hanya dapat berisi angka, huruf, dan garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. Nama ini harus memiliki format berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. Judul ini harus unik untuk kebijakan.
  • DESCRIPTION: deskripsi tingkat akses dan penggunaannya.
  • CONDITION: daftar persyaratan agar tingkat akses dapat diberikan.

Metode HTTP dan URL:

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

Meminta isi JSON:


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 terdiri dari maksimal 50 karakter, diawali dengan huruf, dan hanya dapat berisi angka, huruf, dan garis bawah.
  • ACCESS_LEVEL_NAME: nama unik untuk tingkat akses. Nama ini harus memiliki format berikut: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: judul yang dapat dibaca manusia. Judul 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

Meminta isi JSON:


{
"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 berikutnya