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
Untuk menyelesaikan tugas di halaman ini, Anda harus memiliki salah satu peran berikut:
- Admin Pengelola Konteks Akses (
roles/accesscontextmanager.policyAdmin
) - Editor Pengelola Konteks Akses (
roles/accesscontextmanager.policyEditor
)
- Admin Pengelola Konteks Akses (
Membuat tingkat akses
Konsol
Di konsol Google Cloud, buka halaman Access Context Manager.
Jika diminta, pilih organisasi Anda.
Di halaman Access Context Manager, klik
Create access level.Di panel New Access Level, buat tingkat akses dasar atau tingkat akses kustom. Untuk mendapatkan petunjuk, luaskan bagian yang diperlukan.
Membuat tingkat akses dasar
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.
Di bagian Create Conditions in, pilih Basic mode
.- Di bagian Kondisi, pilih atribut perangkat:
- Klik Device Policy.
Pilih atribut yang diperlukan.
Misalnya, jika Anda ingin menerapkan persetujuan admin di perangkat, pilih Wajibkan persetujuan admin.
- Klik Save.
Tingkat akses yang baru dibuat ditampilkan di halaman Pengelola Akses Konteks.
Membuat tingkat akses kustom
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.
- Di bagian Buat Kondisi di, pilih Mode lanjutan.
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.
- 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.
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.
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.