Verifizierter Kurzschluss bei der Logik der Zugriffsrichtlinie - AWS Verifizierter Zugriff

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verifizierter Kurzschluss bei der Logik der Zugriffsrichtlinie

Möglicherweise möchten Sie eine AWS Verified Access Richtlinie schreiben, die Daten auswertet, die in einem bestimmten Kontext möglicherweise vorhanden sind oder nicht. Wenn Sie Daten in einem Kontext referenzieren, der nicht existiert, erzeugt Cedar einen Fehler und bewertet die Richtlinie, um den Zugriff zu verweigern, unabhängig von Ihrer Absicht. Dies würde zum Beispiel zu einer Ablehnung führen, da sie in diesem Kontext bogus_key nicht existieren fake_provider und nicht existieren.

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

Um diese Situation zu vermeiden, können Sie mithilfe des has Operators überprüfen, ob ein Schlüssel vorhanden ist. Wenn der has Operator „Falsch“ zurückgibt, wird die weitere Auswertung der verketteten Anweisung angehalten, und Cedar gibt beim Versuch, auf ein Element zu verweisen, das nicht existiert, keinen Fehler aus.

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

Dies ist besonders nützlich, wenn Sie eine Richtlinie angeben, die auf zwei verschiedene Vertrauensanbieter verweist.

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) ) ) };