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