Logika kebijakan hubung singkat - AWS Akses Terverifikasi

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Logika kebijakan hubung singkat

Anda mungkin ingin menulis kebijakan Akses AWS Terverifikasi yang mengevaluasi data yang mungkin atau mungkin tidak ada dalam konteks tertentu. Jika Anda mereferensikan data dalam konteks yang tidak ada, Cedar akan menghasilkan kesalahan dan mengevaluasi kebijakan untuk menolak akses, terlepas dari maksud Anda. Misalnya, ini akan menghasilkan penolakan, karena fake_provider dan bogus_key tidak ada dalam konteks ini.

permit(principal, action, resource) when { context.fake_provider.bogus_key > 42 };

Untuk menghindari situasi ini, Anda dapat memeriksa untuk melihat apakah ada kunci menggunakan has operator. Jika has operator mengembalikan false, evaluasi lebih lanjut dari pernyataan berantai berhenti, dan Cedar tidak menghasilkan kesalahan saat mencoba mereferensikan item yang tidak ada.

permit(principal, action, resource) when { context.identity.user has "some_key" && context.identity.user.some_key > 42 };

Ini sangat berguna ketika menentukan kebijakan yang mereferensikan dua penyedia kepercayaan yang berbeda.

permit(principal, action, resource) when { // user is in an allowed group context.aws_idc.groups has "c242c5b0-6081-1845-6fa8-6e0d9513c107" &&( ( // if CrowdStrike data is present, // permit if CrowdStrike's overall assessment is over 50 context has "crowdstrike" && context.crowdstrike.assessment.overall > 50 ) || ( // if Jamf data is present, // permit if Jamf's risk score is acceptable context has "jamf" && ["LOW", "NOT_APPLICABLE", "MEDIUM", "SECURE"].contains(context.jamf.risk) ) ) };