DE112021005656T5 - ANALYSIS OF ROLE REACHABILITY WITH TRANSITIVE TAGS - Google Patents
ANALYSIS OF ROLE REACHABILITY WITH TRANSITIVE TAGS Download PDFInfo
- Publication number
- DE112021005656T5 DE112021005656T5 DE112021005656.5T DE112021005656T DE112021005656T5 DE 112021005656 T5 DE112021005656 T5 DE 112021005656T5 DE 112021005656 T DE112021005656 T DE 112021005656T DE 112021005656 T5 DE112021005656 T5 DE 112021005656T5
- Authority
- DE
- Germany
- Prior art keywords
- role
- policy
- access control
- tags
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000003860 storage Methods 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 14
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 230000009471 action Effects 0.000 description 76
- 230000000694 effects Effects 0.000 description 43
- 230000014509 gene expression Effects 0.000 description 28
- 238000013475 authorization Methods 0.000 description 22
- 238000012550 audit Methods 0.000 description 19
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 15
- 230000004044 response Effects 0.000 description 11
- 230000007704 transition Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 229920001817 Agar Polymers 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000007935 neutral effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009469 supplementation Effects 0.000 description 2
- 241000183024 Populus tremula Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 235000021384 green leafy vegetables Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Verfahren, Systemen und computerlesbaren Medien zur Analyse der Rollenerreichbarkeit mit transitiven Tags sind offenbart. Eine Zugriffssteuerungsanalyseeinheit bestimmt einen Graphen, der eine Vielzahl von Knoten und eine oder mehrere Kanten umfasst. Die Knoten stellen Rollen in einem Anbieternetzwerk dar, das Ressourcen beherbergt. Die Rollen sind Zugriffssteuerungsrichtlinien zugeordnet, die den Zugriff auf einzelne Ressourcen gewähren oder verweigern. Eine oder mehrere der Zugriffssteuerungsrichtlinien gewähren oder verweigern den Zugriff (zumindest teilweise) basierend auf einem oder mehreren Schlüsselwertattributen. Die Zugriffssteuerungsanalyseeinheit bestimmt (zumindest teilweise) basierend auf einer Rollenerreichbarkeitsanalyse des Graphen, ob eine erste Rolle eine zweite Rolle übernehmen kann, indem sie einen oder mehrere Rollenübernahmeschritte für einen konkreten Zustand des einen oder der mehreren Attribute verwendet. Das eine oder die mehreren Attribute können ein oder mehrere transitive Attribute umfassen, die während des einen oder der mehreren Rollenübernahmeschritte bestehen bleiben.Methods, systems, and computer-readable media for analyzing role reachability with transitive tags are disclosed. An access control analysis unit determines a graph that includes a plurality of nodes and one or more edges. The nodes represent roles in a provider network that hosts resources. The roles are associated with access control policies that grant or deny access to individual resources. One or more of the access control policies grant or deny access (at least in part) based on one or more key-value attributes. The access control analysis unit determines (at least in part) based on a role reachability analysis of the graph whether a first role can assume a second role using one or more role assumption steps for a particular state of the one or more attributes. The one or more attributes may include one or more transitive attributes that persist during the one or more role assumption steps.
Description
STAND DER TECHNIKSTATE OF THE ART
Viele Unternehmen und andere Organisationen betreiben Computernetzwerke, die zahlreiche Rechensysteme miteinander verbinden, um ihren Betrieb zu unterstützen, wie etwa mit Rechensystemen, die sich am gleichen Standort befinden (z. B. als Teil eines lokalen Netzwerks) oder sich stattdessen an mehreren unterschiedlichen geografischen Standorten befinden (z. B. verbunden über ein oder mehrere private oder öffentliche Zwischennetzwerke). Beispielsweise sind verteilte Systeme, die eine beträchtliche Anzahl von miteinander verbundenen Rechensystemen beherbergen, alltäglich geworden. Solche verteilten Systeme können Back-End-Dienste für Server bereitstellen, die mit Clients interagieren. Solche verteilten Systeme können auch Rechenzentren beinhalten, die von Entitäten betrieben werden, um Kunden Rechenressourcen bereitzustellen. Einige Rechenzentrumsbetreiber bieten Netzwerkzugang, Stromversorgung und sichere Installationsmöglichkeiten für Hardware, die verschiedenen Kunden gehören, während andere Rechenzentrumsbetreiber „Full-Service“-Einrichtungen anbieten, die auch Hardwareressourcen beinhalten, die ihren Kunden zur Verfügung gestellt werden. Da Ausmaß und Umfang verteilter Systeme zugenommen haben, sind die Aufgaben von Bereitstellung, Verwaltung und Management der Ressourcen immer komplizierter geworden.Many businesses and other organizations operate computer networks that connect numerous computing systems together to support their operations, such as with computing systems co-located (e.g., as part of a local area network) or instead located in multiple different geographic locations (e.g. connected via one or more private or public intermediate networks). For example, distributed systems housing a significant number of interconnected computing systems have become commonplace. Such distributed systems can provide back-end services for servers that interact with clients. Such distributed systems may also include data centers operated by entities to provide computing resources to customers. Some data center operators provide network access, power, and secure installation capabilities for hardware owned by different customers, while other data center operators offer "full-service" facilities that also include hardware resources made available to their customers. As distributed systems have increased in scale and scope, the tasks of provisioning, administering, and managing resources have become more complicated.
Ein verteiltes System kann entfernten -Clients Zugriff auf verschiedene Dienste bereitstellen, die weitgehend innerhalb des verteilten Systems implementiert sind und auf die über ein Netzwerk wie das Internet zugegriffen werden kann. Beispiele für solche Systeme beinhalten Online-Händler, Internetdienstanbieter, Unternehmensnetzwerke, Cloud-Computing-Dienste, webbasierte Hosting-Dienste und so weiter. Verteilte Systeme können der Sicherheit des Benutzerzugriffs auf Systemressourcen unter Verwendung geeigneter Berechtigungen große Bedeutung beimessen. Ressourceneigentümer und Ressourcenadministratoren verwenden häufig solche Zugriffssteuerungsrichtlinien, um den Zugriff durch Benutzer auf Rechenressourcen zu steuern, um die Anfragen von Ressourceneigentümern, Administratoren und Benutzern zu unterstützen. Das Definieren und Verwalten von Benutzerrollen, Berechtigungen oder Richtlinien kann zunehmend komplex werden, insbesondere wenn die Größe und/oder Komplexität des Systems oder die Anzahl der Computersystembenutzer zunimmt.A distributed system can provide remote clients with access to various services implemented largely within the distributed system and accessible over a network such as the Internet. Examples of such systems include online retailers, internet service providers, corporate networks, cloud computing services, web-based hosting services, and so on. Distributed systems can attach great importance to the security of user access to system resources using appropriate permissions. Resource owners and resource administrators often use such access control policies to control user access to computing resources to support resource owner, administrator, and user requests. Defining and managing user roles, permissions, or policies can become increasingly complex, particularly as the size and/or complexity of the system or the number of computer system users increases.
Figurenlistecharacter list
-
1 veranschaulicht eine beispielhafte Systemumgebung zur Analyse der Rollenerreichbarkeit mit transitiven Tags gemäß einigen Ausführungsformen.1 12 illustrates an example system environment for role reachability analysis with transitive tags, according to some embodiments. -
2 veranschaulicht ein Beispiel eines Berechtigungsschemas, das für die Analyse der Rollenerreichbarkeit mit transitiven Tags verwendbar ist, gemäß einigen Ausführungsformen.2 12 illustrates an example of an authorization scheme usable for role reachability analysis with transitive tags, according to some embodiments. -
3 veranschaulicht ein Beispiel eines Rollenerreichbarkeitsgraphen, der für die Analyse der Rollenerreichbarkeit mit transitiven Tags verwendbar ist, gemäß einigen Ausführungsformen.3 12 illustrates an example of a role reachability graph usable for analyzing role reachability with transitive tags, according to some embodiments. -
4 veranschaulicht ein Beispiel von Rollenübernahmeschritten mit transitiven Tags gemäß einigen Ausführungsformen.4 Figure 12 illustrates an example of role-taking steps with transitive tags, according to some embodiments. -
5 ist ein Ablaufdiagramm, das ein Verfahren zur Analyse der Rollenerreichbarkeit mit transitiven Tags gemäß einigen Ausführungsformen darstellt.5 12 is a flow chart illustrating a method for analyzing role reachability with transitive tags, according to some embodiments. -
6 ist ein Ablaufdiagramm, das weitere Aspekte des Verfahrens zur Analyse der Rollenerreichbarkeit mit transitiven Tags gemäß einigen Ausführungsformen darstellt.6 FIG. 12 is a flow chart illustrating further aspects of the method for analyzing role reachability with transitive tags, according to some embodiments. -
7 ist ein Ablaufdiagramm, das ein Verfahren zur Analyse der Rollenerreichbarkeit unter Verwendung von Richtlinienergänzungen veranschaulicht, gemäß einigen Ausführungsformen.7 12 is a flow chart illustrating a method for analyzing role reachability using policy additions, according to some embodiments. -
8 veranschaulicht weitere Aspekte der beispielhaften Systemumgebung für die Analyse der Rollenerreichbarkeit mit transitiven Tags, einschließlich eines Äquivalenzergebnisses, das als Reaktion auf eine Anfrage zum Analysieren der Äquivalenz von zwei Sicherheitsrichtlinien erzeugt wird, gemäß einigen Ausführungsformen.8th 13 illustrates further aspects of the example system environment for role reachability analysis with transitive tags, including an equivalence result generated in response to a request to analyze the equivalence of two security policies, according to some embodiments. -
9 veranschaulicht eine beispielhafte Rechenvorrichtung, die in einigen Ausführungsformen verwendet werden kann.9 1 illustrates an example computing device that may be used in some embodiments.
Während Ausführungsformen in dieser Schrift beispielhaft für mehrere Ausführungsformen und veranschaulichende Zeichnungen beschrieben sind, werden Fachleute erkennen, dass Ausführungsformen nicht auf die beschriebenen Ausführungsformen oder Zeichnungen beschränkt sind. Es versteht sich, dass die Zeichnungen und die detaillierte Beschreibung Ausführungsformen nicht auf die bestimmte offenbarte Form beschränken sollen, sondern stattdessen die Erfindung dazu gedacht ist, alle Modifikationen, Äquivalente und Alternativen abzudecken, die in den Geist und Umfang fallen, wie in den beigefügten Ansprüchen definiert. Die in dieser Schrift verwendeten Überschriften dienen nur organisatorischen Zwecken und sollen nicht dazu verwendet werden, den Umfang der Beschreibung oder der Ansprüche einzuschränken. Wie in dieser Anmeldung verwendet, wird das Wort „kann“ in einem zulässigen Sinn verwendet (d. h. „das Potenzial haben“) und nicht im zwingenden Sinn (d. h. „müssen“). Gleichermaßen bedeuten die Wörter „beinhalten“, „beinhaltend“ und „beinhaltet“ „einschließlich unter anderem“.While embodiments are described herein by way of example of multiple embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the described embodiments or drawings. It should be understood that the drawings and detailed description are not intended to limit the embodiments to the precise form disclosed, but rather the invention is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope as set forth in the appended claims Are defined. The headings used in this document are for organizational purposes only and should not be used to limit the scope of the description or the claims. As used in this application, the word "may" is used in a permissive sense (ie, "have the potential") rather than in a mandatory sense (ie, "must"). Likewise, the words "include,""comprising," and "includes" mean "including, among others."
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF EMBODIMENTS
Es werden verschiedene Ausführungsformen von Verfahren, Systemen und computerlesbaren Medien zur Analyse der Rollenerreichbarkeit mit transitiven Tags beschrieben. Softwareprodukte (z. B. Dienste oder Anwendungen) können in einem verteilten System, einem dienstorientierten System oder einem Cloud-Anbieternetzwerk ausgeführt werden, das eine Vielfalt an Ressourcen und anderen Diensten beinhaltet. Um den Zugriff auf solche Ressourcen und Dienste zu erlauben oder zu verweigern, kann das verteilte System integrierte Techniken zum Durchsetzen von Zugriffssteuerungsrichtlinien unter Verwendung von Authentifizierung und Autorisierung anbieten. Unter Verwendung früherer Ansätze für das Management von Zugriffssteuerungsrichtlinien wurden delegiertes rollenbasiertes Management und tagbasiertes Management auf Attributebene verwendet, um den Zugriff auf Ressourcen in verteilten Systemen zu steuern. Bei einigen Ansätzen wurde das rollenbasierte Management mit dem tagbasierten Management kombiniert. Beispielsweise kann ein Cloud-Anbieternetzwerk transitive oder „persistente“ Sitzungs-Tags unterstützen, die es Benutzern ermöglichen, Einschränkungen für Tags entlang einer Rollenübernahmekette beizubehalten. Unter bestimmten Umständen kann eine Richtlinienkonfiguration bei Vorhandensein eines subtilen Verhaltens des transitiven Tags mit potenziell überlappenden Zeichenfolgeneinschränkungen zu einer unerwarteten Privilegienerweiterung führen. In einem solchen System kann es wünschenswert sein, zu bestimmen, ob ein bestimmter Benutzer oder eine bestimmte Rolle bei einem bestimmten transitiven Tag-Zustand Zugriff auf eine bestimmte Rolle in der Rollenübernahmekette erhalten kann.Various embodiments of methods, systems, and computer-readable media for analyzing role reachability with transitive tags are described. Software products (e.g., services or applications) may run on a distributed system, a service-oriented system, or a cloud provider network that includes a variety of resources and other services. To allow or deny access to such resources and services, the distributed system may offer built-in techniques for enforcing access control policies using authentication and authorization. Using previous approaches to access control policy management, delegated role-based management and attribute-level tag-based management have been used to control access to resources in distributed systems. Some approaches have combined role-based management with tag-based management. For example, a cloud provider network may support transitive, or "persistent," session tags, allowing users to maintain tag restrictions along a role inheritance chain. Under certain circumstances, in the presence of subtle transitive tag behavior with potentially overlapping string constraints, a policy configuration can result in an unexpected privilege escalation. In such a system, it may be desirable to determine whether a particular user or role can be granted access to a particular role in the role inheritance chain given a particular transitive tag state.
Die oben genannten Herausforderungen werden unter anderem durch Ausführungsformen der in dieser Schrift beschriebenen Techniken angegangen, wobei automatisierte Techniken verwendet werden können, um eine symbolische automatisierte Argumentationsanalyse bezüglich der Rollenerreichbarkeit für ein Zugriffssteuerungssystem durchzuführen. Insbesondere kann eine Zugriffssteuerungsanalyseeinheit eine Rollenerreichbarkeitsanalyse durchführen, um zu bestimmen, ob ein bestimmter Benutzer oder eine bestimmte Rolle unter einem bestimmten Zustand eines transitiven oder „persistenten“ Tags auf eine andere bestimmte Rolle erhalten kann, möglicherweise durch einen oder mehrere Rollenübernahmeschritte. Die Rollenerreichbarkeitsanalyse kann einen Graphen mit Knoten, die Rollen darstellen, und Kanten, die Rollenübernahmeübergänge darstellen, verwenden. Die Rollenübernahme kann von Schlüsselwertattributen (Tags) für eine Rollensitzung abhängig gemacht werden, einschließlich transitiver Tags. Transitive Tags (oder „persistente“ Tags) können Schlüsselwertattribute darstellen, die während der Übernahme einer anderen Rolle bestehen bleiben. Unter Umständen kann sich ein Zustand der Tags während der Rollenübernahme ändern. Für jeden Knoten kann die Analyseeinheit ihre möglichen Nachbarn bestimmen, indem sie beobachtet, dass der aktuelle Zustand des transitiven Tags nur durch einen Satz von Tags, deren Schlüssel entweder explizit erwähnt werden und daher deren zugehörige Bedingungen bekannt sind, oder durch unterspezifizierte Tags, deren Werte uneingeschränkt oder teilweise eingeschränkt sind, erweitert werden kann. Die Analyseeinheit kann eine oder mehrere Randbedingungen für das eine oder die mehreren Tags aggregieren, wie durch Zugriffssteuerungsrichtlinien angegeben, die Rollenübernahmeschritten zugeordnet sind. Basierend (zumindest teilweise) auf der Durchführung einer Rollenerreichbarkeitsanalyse unter Verwendung eines solchen Graphen kann die Zugriffssteuerungsanalyseeinheit möglicherweise unerwartete Konfigurationen in einem verteilten System identifizieren.The above challenges are addressed, among other things, by embodiments of the techniques described herein, where automated techniques can be used to perform symbolic automated reasoning analysis regarding role reachability for an access control system. In particular, an access control analysis entity may perform a role reachability analysis to determine whether a given user or role under a given state of a transitive or "persistent" tag can get to another given role, possibly through one or more role assumption steps. The role reachability analysis can use a graph with nodes representing roles and edges representing role-taking transitions. Role assumption can be made dependent on key-value attributes (tags) for a role session, including transitive tags. Transitive tags (or "persistent" tags) can represent key-value attributes that persist while assuming another role. Under certain circumstances, a status of the tags can change during the role takeover. For each node, the parsing unit can determine its possible neighbors by observing that the current state of the transitive tag is only known by a set of tags whose keys are either explicitly mentioned and therefore their associated conditions are known, or by underspecified tags whose values are unrestricted or partially restricted, can be expanded. The analysis unit may aggregate one or more constraints for the one or more tags as specified by access control policies associated with role assumption steps. Based (at least in part) on performing a role reachability analysis using such a graph, the access control analysis engine can identify potentially unexpected configurations in a distributed system.
Knoten, die einer ersten Rolle und einer zweiten Rolle entsprechen, können in dem Graphen benachbart oder angrenzend sein, sodass die Übernahme der zweiten Rolle von der ersten Rolle nur einen Rollenübernahmeschritt beinhalten kann. Beim Bestimmen, ob die erste Rolle die zweite Rolle übernehmen kann, kann die Rollenerreichbarkeitsanalyse eine Zugriffssteuerungsrichtlinie bestimmen, die eine Ergänzung einer Rollenübernahmeanfrage für die zweite Rolle autorisiert. Beispielsweise kann eine solche Richtlinie alle Aktionen außer der Übernahme der zweiten Rolle erlauben. Die neue Zugriffssteuerungsrichtlinie kann eine Negation der Rollenübernahmeanfrage darstellen und kann als negierte Richtlinie bezeichnet werden. Die Rollenerreichbarkeitsanalyse kann die negierte Richtlinie analysieren, die eine Ergänzung einer Rollenübernahmeanfrage in Bezug auf eine oder mehrere andere Zugriffssteuerungsrichtlinien autorisiert. In einigen Ausführungsformen kann die negierte Richtlinie mit einer Rollenübernahmerichtlinie für die zweite Rolle für einen bestimmten Zustand der Tags verglichen werden. Die Analyse der Richtlinien kann unter Verwendung eines Richtlinienvergleichsdienstes durchgeführt werden, der bestimmt, ob eine Zugriffssteuerungsrichtlinie in Bezug auf eine andere Zugriffssteuerungsrichtlinie zulässiger, weniger zulässig, gleich zulässig oder nicht vergleichbar mit einer anderen Zugriffssteuerungsrichtlinie ist. Da der Platz von Zeichenfolgen für Tags unbegrenzt sein kann (z. B. aufgrund von Platzhaltern), kann die Rollenerreichbarkeitsanalyse einen oder mehrere repräsentative Werte für ein oder mehrere Schlüsselwert-Tags aus einer Reihe potenzieller Werte (Äquivalenzklassen) für das/die Tag(s) auswählen. Der Zustand der Tags kann (zumindest teilweise) basierend auf dem/den repräsentativen Wert(en) bestimmt werden. In einigen Ausführungsformen kann die negierte Richtlinie die Rollenübernahmerichtlinie für die zweite Rolle beinhalten, wenn und nur wenn es keinen Kontext gibt, unter dem die Übernahme der zweiten Rolle autorisiert ist. In einigen Ausführungsformen kann die Übernahme der zweiten Rolle durch die erste Rolle autorisiert werden, wenn und nur wenn die negierte Richtlinie nicht die Rollenübernahmerichtlinie für die zweite Rolle beinhaltet.Nodes corresponding to a first role and a second role may be adjacent or contiguous in the graph, such that inheriting the second role from the first role may involve only one inheritance step. In determining whether the first role can assume the second role, the role reachability analysis can determine an access control policy that authorizes an addition to a role assumption request for the second role. For example, such a policy may allow all actions except assuming the second role. The new access control policy may represent a negation of the inheritance request and may be referred to as a negated policy. The role reachability analysis can analyze the negated policy that complements a role over authorized to take request in relation to one or more other access control policies. In some embodiments, the negated policy may be compared to a role inheritance policy for the second role for a particular state of the tags. The analysis of the policies may be performed using a policy comparison service that determines whether an access control policy is more valid, less valid, equally valid, or not comparable to another access control policy with respect to another access control policy. As tag string space can be unlimited (e.g. due to wildcards), the role reachability analysis can select one or more representative values for one or more key-value tags from a set of potential values (equivalence classes) for the tag(s). ) choose. The status of the tags can be determined (at least in part) based on the representative value(s). In some embodiments, the negated policy may include the role assumption policy for the second role if and only if there is no context under which the assumption of the second role is authorized. In some embodiments, the first role may be authorized to assume the second role if and only if the negated policy does not include the role assumption policy for the second role.
Wie ein Fachmann im Hinblick auf diese Offenbarung erkennen wird, können Ausführungsformen in der Lage sein, bestimmte technische Vorteile zu erreichen, einschließlich einiger oder aller der folgenden: (1) Verbessern der Sicherheit eines verteilten Systems, indem automatisch bestimmt wird, ob eine Rolle, die für die Zugriffssteuerung für einen Zustand eines transitiven Tags verwendet wird, durch Rollenübernahme Zugriff auf eine andere Rolle erlangen kann; (2) Verbessern der Sicherheit eines verteilten Systems, indem relevante Benutzer oder Konten automatisch benachrichtigt werden, wenn festgestellt wird, dass Zugriffssteuerungsrichtlinien das Potenzial für eine unerwartete Privilegienerweiterung haben; und so weiter.As one skilled in the art will appreciate in view of this disclosure, embodiments may be able to achieve certain technical advantages, including some or all of the following: (1) enhancing the security of a distributed system by automatically determining whether a role, used for access control for a state of a transitive tag, can gain access to another role through role inheritance; (2) enhancing the security of a distributed system by automatically notifying relevant users or accounts when access control policies are determined to have the potential for unexpected privilege escalation; and so forth.
Die Zugriffssteuerung im Anbieternetzwerk 190 kann mit Konzepten von Konten, Benutzern innerhalb von Konten und Zusammenschlüssen von Konten von Identitätsanbietern Dritter zur Authentifizierung von Identitäten implementiert werden. Die Zugriffssteuerung im Anbieternetzwerk 190 kann mit Hilfe von Rollenkonzepten, Rollenübernahmen und einer allgemeinen Richtliniensprache implementiert werden, um zu spezifizieren, auf welche Ressourcen und Dienste diese Identitäten unter welchen Bedingungen zugreifen können, z. B. mit Hilfe der Richtlinien 165. Eine Rolle kann eine Identität mit zugehörigen Berechtigungsrichtlinien darstellen, die vorschreiben, was die Rolle tun kann und was nicht. In einigen Ausführungsformen ist eine Rolle nicht eindeutig einer Person zugeordnet, sondern kann auch von Auftraggebern wie Benutzern, anderen Rollen, Diensten oder Ressourcen (z. B. Recheninstanzen) annehmbar sein. Diese Benutzer können demselben Konto, einem anderen Konto, einem Dienst oder einer externen Identität zugeordnet sein, die von einem unterstützten Identitätsanbieter (z. B. einem Unternehmensverzeichnis oder einem Security-Assertion-Markup-Language-(SAML-)Anbieter) authentifiziert wird. Wenn eine Rolle übernommen wird, kann die Rollenübernahme temporäre Sicherheitsanmeldeinformationen für eine Rollensitzung bereitstellen, um nur so viel Zugriff zu gewähren, wie für die Durchführung der erforderlichen Aufgabe erforderlich ist, anstatt langfristige Anmeldeinformationen wie Passwörter oder Zugangsschlüssel bereitzustellen.Access control in
Die Zugriffssteuerungsrichtlinien 165 und die entsprechenden Rollen können in einem verteilten System verwendet werden, in dem Dienste und Ressourcen 170 möglicherweise über Zugriffsanfragen gemäß den Zugriffssteuerungsrichtlinien zugänglich sind. Das verteilte System kann zum Beispiel ein mandantenfähiges Anbieternetzwerk 190 darstellen. Zu den Ressourcen, auf die über die Zugriffssteuerungsrichtlinien 165 zugegriffen werden kann, können Recheninstanzen, Speicherressourcen, Datenbankressourcen, Netzwerkressourcen usw. gehören. Zu den Diensten, auf die über die Zugriffssteuerungsrichtlinien 165 zugegriffen werden kann, können Softwareprodukte gehören, die als Reaktion auf Anfragen von Clients verschiedene Aufgaben ausführen, darunter auch andere Dienste. In einigen Ausführungsformen können die Dienste Zugriff auf die Ressourcen anbieten. So kann das Anbieternetzwerk 190 beispielsweise einen virtuellen Rechendienst anbieten, der Recheninstanzen aus Pools verfügbarer Ressourcen bereitstellt und es den Clients dann ermöglicht, diese Instanzen zu betreiben. Als weiteres Beispiel kann das Anbieternetzwerk 190 einen Cloud-basierten Speicherdienst anbieten, der Speicherressourcen aus Pools verfügbarer Ressourcen reserviert und dann den Clients erlaubt, von diesen Speicherressourcen zu lesen und auf sie zu schreiben. Zu den Diensten und Ressourcen 170 können Anwendungsprogrammierschnittstellen (application programming interfaces - APIs) gehören, über die andere Einheiten die Durchführung von Handlungen anfordern können.The
In einer Ausführungsform kann der Zugriffssteuerungsrichtlinienmanager 160, der dem Anbieternetzwerk 190 zugeordnet ist, Zugriffssteuerungsrichtlinien 165 verwalten, die vorschreiben, welche Benutzer auf welche Dienste und Ressourcen zugreifen können und unter welchen Umständen diese Benutzer auf die Dienste und Ressourcen 170 zugreifen können. Zugriffssteuerungsrichtlinien 165 können Berechtigungen oder Privilegien in Bezug auf konkrete Dienste und Ressourcen 170 beinhalten oder bestimmen. Ein Eigentümer eines Dienstes oder einer Ressource kann einem Benutzer (oder einer Benutzergruppe) Zugriff auf den Dienst oder die Ressource gewähren, damit der Benutzer eine oder mehrere Handlungen durchführen kann, während er gleichzeitig die Sicherheit des Dienstes oder der Ressource gewährleistet. Zur Verwaltung der Benutzerprivilegien kann ein Dienst- oder Ressourceneigentümer die Zugriffsbefugnis auf einen bestimmten Dienst oder eine bestimmte Ressource auf vielfältige Weise delegieren, um entsprechend den Zugriffsrichtlinien auf die Ressource unterschiedliche Zugriffsebenen zu ermöglichen. Ein Auftraggeber 150 (oder ein Satz von Auftraggebern), der/die durch die Delegierung von Zugriffsbefugnissen auf einen bestimmten Dienst oder eine bestimmte Ressource autorisiert ist/sind, kann in dieser Schrift als autorisierter Delegierter bezeichnet werden. Eine Zugriffssteuerungsrichtlinie kann mit einer Rolle verbunden sein, die vom Richtlinienmanager 160 oder einem anderen Identitäts- und Zugriffsmanagementdienst verwaltet wird. Die Rolle kann einem oder mehreren Benutzern oder einer oder mehreren Benutzergruppen zugeordnet sein. Die Rolle kann zum Beispiel von einem Dienst oder einer Anwendung während ihrer Ausführung im Anbieternetzwerk 190 verwendet werden. In einigen Ausführungsformen kann eine Zugriffssteuerungsrichtlinie dem Prinzip der geringsten Privilegien folgen. Eine bestimmte Richtlinie kann den Zugriff auf einen Satz der Dienste und Ressourcen 170 erlauben, aber nicht auf einen anderen Satz der Dienste und Ressourcen 170.In one embodiment, access
Um zu Schlussfolgerungen über die Sicherheitslage von Systemen zu gelangen, die für die Ausführung in einem Anbieternetzwerk 190 oder einer anderen verteilten Umgebung gebaut wurden, kann die Zugriffssteuerungsanalyseeinheit 100 automatisierte Techniken verwenden, um Fragen zur Rollenerreichbarkeit zu beantworten. Die Zugriffssteuerungsanalyseeinheit 100 kann über den transitiven Abschluss von Rollenübernahmeschritten bestimmen, was ein Auftraggeber tun kann. Zum Beispiel kann die Zugriffssteuerungsanalyseeinheit 100 bestimmen, ob die Rolle r1 im Konto a1 die Rolle r2 im Konto a2 übernehmen kann, die wiederum die Rolle r3 im Konto a3 übernehmen kann. Unter Umständen kann die Rolle r3 Berechtigungen für sensible Ressourcen haben, auf die a1 aus Gründen der Sicherheit, des Datenschutzes oder der Einhaltung von Vorschriften nicht zugreifen sollte. In einem Anbieternetzwerk 190 können diese Ressourcen Speicherressourcen, Vorrichtungen wie Satelliten-Basisstationen oder Mikroprozessoren oder Schreibzugriff auf die Richtlinien, die den Zugriff auf Rollen regeln, beinhalten. Die Zugriffssteuerungsanalyseeinheit 100 kann eine Rollenerreichbarkeitsanalyse 120 durchführen, die (zumindest teilweise) auf einem Rollenerreichbarkeitsgraphen 110 basiert.In order to reach conclusions about the security posture of systems built to run in a
In einigen Ausführungsformen kann die Zugriffssteuerungsanalyseeinheit 100 eine Benutzeroberfläche 130 beinhalten. Die Benutzeroberfläche 130 kann es Benutzern ermöglichen, die Durchführung der Rollenerreichbarkeitsanalyse 120 anzufordern, z. B. für eine konkrete Rolle oder ein konkretes Konto oder für einen Satz von Rollen oder Konten. Die Benutzeroberfläche 130 kann den Benutzern Aspekte der Analyse 120 darstellen, wie etwa Hinweise darauf, welche Rollen welche anderen Rollen übernehmen können, und/oder andere Ergebnisse der Analyse. In einigen Ausführungsformen kann die Benutzeroberfläche 130 dazu verwendet werden, Benachrichtigungen über die Ergebnisse der Analyse 120 zu generieren. Beispielsweise kann die Analyseeinheit 100 eine Benachrichtigung an einen Administrator oder ein Sicherheitsteam über alle Sicherheitsfeststellungen senden, die mit Hilfe der Analyse der Rollenerreichbarkeitsanalyse 120 entdeckt wurden, z. B. Feststellungen einer unerwarteten Privilegienerweiterung. In einigen Ausführungsformen kann die Zugriffssteuerungsanalyseeinheit 100 als Dienst implementiert sein und eine oder mehrere Dienstschnittstellen beinhalten, über die die Analyseeinheit mit anderen Diensten, z. B. den Diensten 170 und/oder dem Richtlinienvergleichsdienst, interagieren kann. In verschiedenen Ausführungsformen kann die Analyseeinheit 100 innerhalb des Anbieternetzwerks 190 oder außerhalb des Anbieternetzwerks implementiert werden.In some embodiments, the access
Die Zugriffssteuerungsanalyseeinheit 100 kann eine Analyse 120 der Rollenerreichbarkeit im Hinblick auf transitive oder „persistente“ Sitzungs-Tags durchführen. Tags können Schlüsselwertattribute darstellen, die bei der Rollenübernahme bereitgestellt werden. Tags können alphanumerische Deskriptoren beinhalten, die mit den Auftraggebern verbunden sind. Richtlinien können diese Tags einschränken, um eine attributbasierte Zugriffssteuerung in Kombination mit einem delegierten rollenbasierten Management durchzuführen, z. B. um eine Autorisierungsstrategie anzuwenden, die Berechtigungen auf der Grundlage von Tag-Attributen definiert. Verwendet eine Organisation beispielsweise einen SAML-basierten Identitätsanbieter, kann sie ihre Behauptungen so konfigurieren, dass sie Sitzungs-Tags für das Cloud-Anbieternetzwerk bereitstellen. Wenn sich die Mitarbeiter mit dem Anbieternetzwerk 190 verbinden, können ihre Attribute wie FirstName, LastName oder Email einem zugehörigen Auftraggeber im Anbieternetzwerk zugeordnet werden, und Richtlinien können auf der Grundlage dieser Attribute Zugriff gewähren oder verweigern. Während der Rollenübernahmeschritte können Sitzungs-Tags übergeben werden. Sitzungs-Tags können optional als transitiv oder „persistent“ festgelegt werden, sodass sie während nachfolgender Rollenübernahmeschritte bestehen bleiben, um Einschränkungen über eine Rollenübernahmekette zu propagieren. Wenn ein Sitzungs-Tag als transitiv festgelegt ist, kann es zu einem Auftraggeber-Tag werden, das der Sitzung zugeordnet ist, die der übernommenen Rolle entspricht.The access
Die Rollenerreichbarkeitsanalyse 120 kann einen Rollenerreichbarkeitsgraphen 110 verwenden, dessen Knoten die Rollen und dessen Kanten die Rollenübernahmeübergänge darstellen. Der Graph 110 kann ein gerichteter Graph sein (in dem die Kanten Richtungen haben), muss aber nicht unbedingt ein gerichteter azyklischer Graph sein. Die Rollenübernahme kann von Schlüsselwertattributen (Tags) für eine Rollensitzung abhängig gemacht werden, einschließlich transitiver Tags, die während der Übernahme einer anderen Rolle bestehen bleiben. Unter Umständen kann sich ein Zustand der Tags während der Rollenübernahme ändern. Beispielsweise kann die Übernahme einer konkreten Rolle dazu führen, dass für einen Auftraggeber Tags hinzugefügt werden, und somit kann der konkrete Pfad, der von einer Rollenübernahmekette genommen wird, zu einem anderen Tag-Zustand führen als ein anderer Pfad zu demselben Knoten im Graphen 110. Die Rollenübernahme kann von Tags abhängig gemacht werden, die mit Platzhaltern für Werte von Schlüsselwertattributen übereinstimmen. Basierend (zumindest teilweise) auf dem Vorhandensein solcher Platzhalter kann der Satz potenzieller Tag-Werte, die für einen Rollenübernahmeschritt relevant sind, unbegrenzt und/oder unendlich groß sein. In einigen Ausführungsformen kann die Analyseeinheit 100 für jeden Knoten ihre möglichen Nachbarn bestimmen, indem sie feststellt, dass der aktuelle Zustand des transitiven Tags nur durch einen Satz von Tags erweitert werden kann, deren Schlüssel entweder explizit genannt werden und deren zugeordnete Bedingungen daher bekannt sind, oder durch unterspezifizierte Tags, deren Werte nicht oder nur teilweise eingeschränkt sind. Die Analyseeinheit 100 kann eine oder mehrere Randbedingungen (z. B. Obergrenzen und/oder Untergrenzen) für das eine oder die mehreren Tags aggregieren, wie durch Zugriffssteuerungsrichtlinien 165 angegeben, die Rollenübernahmeschritten zugeordnet sind. Basierend (zumindest teilweise) auf der Durchführung einer Rollenerreichbarkeitsanalyse 120 unter Verwendung des Graphen 110 kann die Zugriffssteuerungsanalyseeinheit 100 eine potenziell unerwartete Konfiguration identifizieren. Die Analyseeinheit 100 kann Sicherheitsergebnisse darstellen, die diese Konfiguration beschreiben.The
In einigen Ausführungsformen kann die Zugriffssteuerungsanalyseeinheit 100 einen Richtlinienvergleichsdienst 180 im Anbieternetzwerk 190 verwenden, um Unterschiede auf semantischer Ebene (falls vorhanden) zwischen zwei Zugriffssteuerungsrichtlinien zu finden. Der Richtlinienvergleichsdienst 180 kann zum Beispiel bestimmen, ob eine Richtlinie weniger berechtigt oder gleichberechtigt mit einer anderen Richtlinie ist. Der Richtlinienvergleichsdienst 180 kann zum Beispiel verwendet werden, um zu bestimmen, ob ein Rollenübernahmeschritt durchgeführt werden kann. Der Richtlinienvergleichsdienst 180 kann die Bedingungen für die Durchführung eines Rollenübernahmeschritts bestimmen. Die Verwendung des Richtlinienvergleichsdienstes 180 wird im Folgenden näher erläutert.In some embodiments, the access
Die Zugriffssteuerungsanalyseeinheit 100 kann mit einer beliebigen Anzahl und Konfiguration von Rechenvorrichtungen implementiert werden, von denen jede durch die in
Verschiedene Komponenten wie die Zugriffssteuerungsanalyseeinheit 100, der Richtlinienmanager 160, die Dienste und Ressourcen 170 und/oder der Richtlinienvergleichsdienst 180 können in einem dienstorientierten System implementiert werden, in dem mehrere Dienste zusammenarbeiten, um komplexe Aufgaben gemäß einer dienstorientierten Architektur durchzuführen. Ein Dienst (wie etwa einer der Dienste 170) kann unter Verwendung einer Vielzahl verschiedener Instanzen implementiert werden, die über ein oder mehrere Netze verteilt sind, und jede Instanz kann verschiedenen Clients Zugriff auf die Funktionen des entsprechenden Dienstes bieten. In einer solchen Umgebung kann die Zugriffssteuerungsanalyseeinheit 100 ihre Funktionen als Dienst für mehrere Clients anbieten. Es ist vorgesehen, dass eine beliebige geeignete Anzahl und Konfiguration von Clients mit der Zugriffssteuerungsanalyseeinheit 100 interagieren kann. Damit Clients ihre Funktionen aufrufen können, kann die Zugriffssteuerungsanalyseeinheit 100 eine oder mehrere beliebige geeignete Schnittstellen bereitstellen, wie etwa eine oder mehrere APIs oder andere programmatische Schnittstellen, Befehlszeilenschnittstellen (command-line interfaces - CLIs) und/oder grafische Benutzeroberflächen (graphical user interfaces - GUIs), z. B. die Benutzeroberfläche 130. In einer Ausführungsform können die Funktionen der Zugriffssteuerungsanalyseeinheit 100 den Clients gegen eine Gebühr angeboten werden.Various components such as the access
Die in
In einer Ausführungsform können die Dienste und Ressourcen 170 unter Verwendung von Ressourcen des Anbieternetzwerks 190 implementiert werden. In einigen Ausführungsformen können Aspekte der Zugriffssteuerungsanalyseeinheit 100, des Richtlinienmanagers 160 und/oder des Richtlinienvergleichsdienstes 180 auch unter Verwendung von Ressourcen des Anbieternetzwerks 190 implementiert werden. Das Anbieternetzwerk 190 kann ein Netzwerk darstellen, das von einer Einheit wie etwa einer Geschäftseinheit oder einer öffentlichen Organisation eingerichtet wurde, um einen oder mehrere Dienste (wie etwa verschiedene Arten von netzwerkzugänglicher Datenverarbeitung oder -speicherung), die über das Internet und/oder andere Netzwerke zugänglich sind, für einen verteilten Satz von Clients bereitzustellen. Das Anbieternetzwerk 190 kann zahlreiche Rechenzentren beinhalten, die verschiedene Ressourcenpools beherbergen, wie etwa Sammlungen von physischen und/oder virtualisierten Computerservern, Speichervorrichtungen, Netzwerkausrüstungen und dergleichen, die zur Implementierung und Verteilung der vom Anbieter angebotenen Infrastruktur und Dienste verwendet werden. In einigen Ausführungsformen können die Rechenressourcen den Clients in Einheiten angeboten werden, die als „Instanzen“ bezeichnet werden, wie etwa virtuelle oder physische Recheninstanzen. Eine virtuelle Recheninstanz kann beispielsweise einen oder mehrere Servern mit einer spezifizierten Rechenkapazität (die durch Angabe der Art und Anzahl der CPUs, der Größe des Hauptspeichers usw. spezifiziert werden kann) und einem spezifizierten Software-Stack (z. B. einer konkreten Version eines Betriebssystems, das wiederum auf einem Hypervisor laufen kann) umfassen. Zur Implementierung der Ressourcen des Anbieternetzwerks in verschiedenen Ausführungsformen können verschiedene Arten von Rechenvorrichtungen einzeln oder in Kombination verwendet werden, darunter Computerserver, Speichervorrichtungen, Netzwerkvorrichtungen und dergleichen. Da die Ressourcen des Anbieternetzwerks 190 von mehreren Clients (oder Mandanten) gleichzeitig oder nacheinander kontrolliert werden können, kann das Anbieternetzwerk als mandantenfähig bezeichnet werden und wird auch als mandantenfähiges Anbieternetzwerk bezeichnet. Das Anbieternetzwerk 190 kann „in der Cloud“ beherbergt werden und kann als Cloud-Anbieternetzwerk oder Cloud-basiertes Anbieternetzwerk bezeichnet werden.In one embodiment, the services and
In einigen Ausführungsformen kann ein Betreiber des Anbieternetzwerks 190 einen flexiblen Satz von Ressourcenreservierungs-, -steuerungs- und -zugriffsschnittstellen für seine Clients implementieren. Beispielsweise kann ein Ressourcenmanager eine programmatische Schnittstelle zur Ressourcenreservierung implementieren (z. B. über eine Website oder einen Satz von Websites), die es Clients (möglicherweise einschließlich anderer Komponenten innerhalb des Anbieternetzwerks 190) ermöglicht, sich über die vom Anbieternetzwerk 190 angebotenen Recheninstanzen zu informieren, sie auszuwählen, Zugriff auf sie zu erwerben und/oder sie zu reservieren. Eine solche Schnittstelle kann Fähigkeiten zum Durchsuchen eines Ressourcenkatalogs beinhalten und Einzelheiten und Spezifikationen zu den verschiedenen Arten oder Größen der unterstützten Ressourcen, den verschiedenen unterstützten Reservierungsarten oder -modi, Preismodellen usw. bereitstellen.In some embodiments, a
In einer Ausführungsform können die Berechtigungen spezifizieren, welche Ressourcen erlaubt sind, wenn eine Standardrichtlinie den Zugriff auf Ressourcen verweigert. In einer Ausführungsform, wenn die Standardrichtlinie den Zugriff auf Ressourcen erlaubt, können die Berechtigungen den Zugriff auf die Ressourcen spezifizieren, die nicht explizit verweigert werden. In einer Ausführungsform mit einer anderen Standardrichtlinie können die Berechtigungen eine Kombination aus erlaubtem und verweigertem Ressourcenzugriff spezifizieren. In einigen Ausführungsformen kann der Satz effektiver Berechtigungen 220 eine Aggregation von Berechtigungen für eine konkrete Ressource und/oder Klasse von Ressourcen sein. In einigen Ausführungsformen kann der Satz effektiver Berechtigungen 220 eine Aggregation von Berechtigungen für mehrere Ressourcen sein (z. B. eine Aggregation von Berechtigungen, die allen von einem Dienst für den Benutzer verwalteten Ressourcen zugeordnet sind, eine Aggregation von Berechtigungen, die einem Benutzerkonto zugeordnet sind, oder eine andere Aggregation von Berechtigungen).In one embodiment, the permissions can specify which resources are allowed when a default policy denies access to resources. In one embodiment, if the default policy allows access to resources, the permissions may specify access to the resources that are not explicitly denied. In an embodiment with a different default policy, the permissions may specify a combination of allowed and denied resource access. In some embodiments, effective permissions set 220 may be an aggregation of permissions for a particular resource and/or class of resources. In some embodiments, the set of
Der Satz effektiver Berechtigungen 220 kann eine Kombination oder Aggregation von Berechtigungen auf Grundlage von Aspekten des Auftraggebers spezifizieren. Wenn der Auftraggeber 150 beispielsweise ein Benutzer ist, kann der Satz effektiver Berechtigungen 220 eine oder mehrere Benutzerrichtlinienberechtigungen 214 spezifizieren. Benutzerrichtlinienberechtigungen 214 können Berechtigungen beinhalten, die sich auf die Art des Auftraggebers 150 beziehen (d. h. einen „Benutzer“, eine „Gruppe“ oder eine „Organisation“) und können auch Berechtigungen beinhalten, die einem spezifischen Satz von Anmeldeinformationen zugeordnet sind, die der Identität des Auftraggebers 150 zugeordnet sind.The set of
Zusätzlich zu den Berechtigungen, die sich auf die Klasse und/oder die Identität des Auftraggebers 150 beziehen, kann der Satz effektiver Berechtigungen 220 eine oder mehrere Delegierungsrichtlinienberechtigungen 212 als Ergebnis der Übernahme 204 einer oder mehrerer Rollen 206 durch den Auftraggeber 150 innerhalb einer Organisation spezifizieren. Als ein Beispiel kann ein Auftraggeber 150 ein Softwareentwickler sein und bei seinen täglichen Aktivitäten die Rolle eines Softwareentwicklers übernehmen 204 und ein autorisierter Delegierter für den Satz von Berechtigungen, die der Übernahme der Softwareentwicklerrolle zugeordnet sind, werden. Eine Softwareentwicklerrolle kann einen Satz von Delegierungsrichtlinienberechtigungen 212 spezifizieren, die in dem Satz effektiver Berechtigungen 220 beinhaltet sind, die dem Auftraggeber 150 zugeordnet sind. Es kann zu Überschneidungen zwischen den Benutzerrichtlinienberechtigungen 214 und den Delegierungsrichtlinienberechtigungen 212 kommen (z. B. „Berechtigung B“). Es kann auch zu Konflikten zwischen den Benutzerrichtlinienberechtigungen 214 und den Delegierungsrichtlinienberechtigungen 212 kommen. So kann beispielsweise die „Berechtigung A“ in der Delegierungsrichtlinie 212 den Zugriff auf eine Ressource jederzeit gewähren, während die „Berechtigung C“ in den Benutzerrichtlinienberechtigungen 214 diesen Zugriff verweigern kann. Bei solchen Konflikten kann eine Standardrichtlinie und/oder eine Standardrichtlinie zur Lösung von Konflikten vorherrschen (d. h. zum Bevorzugen einer Verweigerung oder zum Bevorzugen einer Gewährung).In addition to the permissions related to the class and/or identity of the principal 150, the set of
Gleichermaßen kann der Satz effektiver Berechtigungen 220 eine oder mehrere Gruppenrichtlinienberechtigungen 218 spezifizieren, die sich daraus ergeben, dass ein Auftraggeber 150 Mitglied von 208 einer oder mehreren Gruppen 210 (z. B. einer Produktionsgruppe) ist. Der Satz effektiver Berechtigungen 220 kann auch eine oder mehrere andere Richtlinienberechtigungen 216 spezifizieren, wie etwa solche, die Standardrichtlinien, organisatorischen Richtlinien, Richtlinien, die bestimmten Anwendungen zugeordnet sind, Richtlinien, die erhöhten Sicherheitsbedingungen zugeordnet sind, temporären Richtlinien oder anderen solchen Richtlinien zugeordnet sind.Likewise, the set of
Ein Auftraggeber 150 kann auch mehrere Rollen und damit mehrere Sätze von Rollenrichtlinienberechtigungen übernehmen. So kann beispielsweise ein Auftraggeber 150, der bei seinen täglichen Aktivitäten die Rolle eines Softwareentwicklers übernimmt, zu einem bestimmten Zeitpunkt seines Arbeitstages mehr Berechtigungen benötigen, wie sie beispielsweise der Rolle eines Systemadministrators zugeordnet sind. In einem solchen Beispiel kann der Auftraggeber vorübergehend eine Systemadministratorrolle übernehmen, eine oder mehrere privilegierte Operationen durchführen, die durch diese Rolle gewährt werden, und dann diese Rolle wieder freigeben, wodurch seine Richtlinie zu dem weniger privilegierten Satz von Berechtigungen zurückkehrt. Wie in Betracht gezogen werden kann, handelt es sich bei den in Verbindung mit diesen Rollen beschriebenen Rollenarten und den zugeordneten Berechtigungen um veranschaulichende Beispiele, und andere Rollenarten und zugeordnete Positionen können als in den Anwendungsbereich der vorliegenden Offenbarung fallend betrachtet werden.A
Berechtigungen, die dem Satz effektiver Berechtigungen 220 zugeordnet sind, können für den Auftraggeber 150 durch Hinzufügen und/oder Entfernen von Berechtigungen (z. B. als Ergebnis von API-Aufrufen an einen Richtlinienmanagementdienst 160) aus den Delegierungsrichtlinienberechtigungen 212, aus den Benutzerrichtlinienberechtigungen 214, aus den Gruppenrichtlinienberechtigungen 218, aus den anderen Richtlinienberechtigungen 216 oder aus anderen derartigen Gruppen von Berechtigungen geändert werden. Zum Beispiel kann das Entfernen der „Berechtigung E“ aus dem Satz effektiver Berechtigungen 220 durch das Entfernen dieser Berechtigung aus den Gruppenrichtlinienberechtigungen 218 erreicht werden. Eine solche Entfernung kann auch dazu führen, dass anderen Auftraggebern, die Mitglieder dieser Gruppe sind, die Berechtigung entzogen wird, was ein erwünschter oder unerwünschter Effekt sein kann. Redundante Berechtigungen können aus einer Richtlinie entfernt werden. Beispielsweise haben Benutzer mit Benutzerrichtlinienberechtigungen 214 und mit Delegierungsrichtlinienberechtigungen 212 die „Berechtigung B“, die von beiden Richtlinien gewährt wird, und als solche kann die „Berechtigung B“ entweder aus den Delegierungsrichtlinienberechtigungen 212 oder aus den Benutzerrichtlinienberechtigungen 214 entfernt werden, ohne die Berechtigungen in dem Satz effektiver Berechtigungen 220 zu ändern. In beiden dieser Beispiele kann das gleiche Ergebnis auch durch andere Maßnahmen zur Modifikation von Richtlinien erreicht werden (z. B. durch Ändern der Gruppenzugehörigkeit und/oder der Rollenzuweisungen wie in dieser Schrift beschrieben).Permissions associated with set of
Beispielsweise kann der Auftraggeber 150 aus der Gruppe entfernt werden (anstatt die Berechtigungen der Gruppe zu ändern), und da in dem in
In einer Ausführungsform kann eine Berechtigung einen Auftraggeber 150, eine Ressource, eine Handlung, eine Bedingung und/oder einen Effekt spezifizieren. In einigen Ausführungsformen kann eine Berechtigung eine Vielzahl von einem oder mehreren dieser Elemente spezifizieren, wie zum Beispiel einen Satz oder eine Klasse von Benutzern, eine Sammlung von Ressourcen, mehrere verschiedene Handlungen und/oder mehrere Bedingungen. Der Auftraggeber 150 kann einen Benutzer, eine Gruppe, eine Organisation, eine Rolle oder eine Sammlung und/oder Kombination dieser oder anderer solcher Einheiten darstellen. Ein Auftraggeber 150 kann eine beliebige Einheit sein, die in der Lage ist, API-Aufrufe zu übermitteln, die die Durchführung einer Handlung, die einer Ressource zugeordnet ist, bewirken, und/oder eine beliebige Einheit, der Berechtigungen, die einer Ressource zugeordnet sind, erteilt werden können. Zum Beispiel kann eine konkrete Berechtigung angeben, dass der Auftraggeber 150 ein Benutzer mit der Bezeichnung „USER1“ ist. Die Berechtigung kann eine Handlung angeben, die in Verbindung mit der Ressource durchgeführt werden kann und beispielsweise durch einen API-Aufruf, einen Bibliotheksaufruf, ein Programm, einen Prozess, eine Reihe von Schritten, einen Arbeitsablauf oder eine andere derartige Handlung identifiziert werden kann. Eine Handlung kann zum Beispiel ein Satz von Vorgängen sein, die im Rahmen eines API-Aufrufs, zum Beispiel an einen über das Internet zugänglichen Dienst, durchgeführt werden können. Bei den durchgeführten Handlungen kann es sich um eine Teilmenge dieser Handlungen und/oder um einen einzigen Vorgang handeln. Die Vorgänge können auch in einer definierten Reihenfolge durchgeführt, wiederholt oder auf eine Vielzahl von API-Aufrufen verteilt werden. Die Handlung kann zum Beispiel ein API-Aufruf sein, um Daten in die Ressource zu schreiben. Eine Berechtigung kann ferner eine Speicherressource, einen Datenschreib-API-Aufruf für die Handlung, eine Zeitbedingung und einen zulässigen Effekt spezifizieren. Eine solche beispielhafte Berechtigung könnte also lauten: „USER1 DARF zwischen 9:00 UND 9:30 Uhr an 12345 SCHREIBEN“In one embodiment, a permission may specify a principal 150, a resource, an action, a condition, and/or an effect. In some embodiments, a permission may specify a variety of one or more of these items, such as a set or class of users, a collection of resources, multiple different actions, and/or multiple conditions.
Der Zustand eines Tags für eine Sitzung kann einen Befugniskontext darstellen, und die Übernahme einer Rolle kann von diesem Kontext abhängig sein. Im beispielhaften Graphen 300B von
Die Rollenerreichbarkeitsanalyse 110 kann mit der Durchquerung des Graphen an einem oder mehreren möglichen Eintrittspunkten beginnen, wie etwa an Knoten, die keinen Zustand des transitiven Tags aufweisen. Die Rollenübernahme kann von Tags abhängig gemacht werden, die mit Platzhaltern für Werte von Schlüsselwertattributen übereinstimmen. Basierend (zumindest teilweise) auf dem Vorhandensein solcher Platzhalter kann der Satz potenzieller Tag-Werte, die für einen Rollenübernahmeschritt relevant sind, unbegrenzt und/oder unendlich groß sein. In einigen Ausführungsformen kann die Analyseeinheit 100 für jeden Knoten ihre möglichen Nachbarn bestimmen, indem sie feststellt, dass der aktuelle Zustand des transitiven Tags nur durch einen Satz von Tags erweitert werden kann, deren Schlüssel entweder explizit genannt werden und deren zugeordnete Bedingungen daher bekannt sind, oder durch unterspezifizierte Tags, deren Werte nicht oder nur teilweise eingeschränkt sind. Die Analyseeinheit 100 kann eine oder mehrere Randbedingungen (z. B. Obergrenzen und/oder Untergrenzen) für das eine oder die mehreren Tags aggregieren, wie durch Zugriffssteuerungsrichtlinien 165 angegeben, die Rollenübernahmeschritten zugeordnet sind.The
Wie anhand des folgenden Beispiels gezeigt wird, kann die Rollenübernahme zu einer unerwarteten Privilegienerweiterung führen, wenn ein subtiles Verhalten eines transitiven Tags mit potenziell überlappenden Zeichenfolgeneinschränkungen vorliegt. In einem Anbieternetzwerk 190 kann ein Auftraggeberp eine Rolle r übernehmen, wenn die Vertrauensrichtlinie der Rolle r dem Auftraggeber p vertraut und die Identitätsrichtlinie von p den Zugriff auf eine AssumeRole-Handlung für die Ressource r gewährt. Wenn p und r verschiedenen Konten angehören, kann p Zugriff auf die AssumeRole-Handlung erhalten, wenn seine Identitätsrichtlinie dies ausdrücklich gewährt. Wenn p und r demselben Konto angehören, kann p auf die AssumeRole-Handlung zugreifen, sofern seine Identitätsrichtlinie dies nicht ausdrücklich verweigert. In diesem Beispiel kann die Identitätsrichtlinie für einen konkreten Benutzer Jane im Konto 123 Folgendes beinhalten:
{ "Effect": "Deny", "Action": "AssumeRole", }"Resource": "123:role/Write*"As the following example shows, when there is subtle behavior of a transitive tag with potentially overlapping string constraints, role assumption can result in an unexpected privilege escalation. In a
{ "Effect": "Deny", "Action": "AssumeRole", }"Resource": "123:role/Write*"
In diesem Beispiel kann die Vertrauensrichtlinie für eine Rolle Audit im Konto 123 Folgendes beinhalten:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "123:user/Jane"}, "Action": ["AssumeRole", "TagSession"], "Condition": { "StringLike": {"RequestTag/FirstName": "J*"}, "ForAllValues:StringEquals": {"TransitiveTagKeys": ["FirstName", "Email"] }, "ForAnyValue: StringEquals" : {"TransitiveTagKeys": "FirstName"} }}In this example, the trust policy for an Audit role in account 123 might include:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "123:user/Jane"}, "Action": ["AssumeRole", "TagSession"], "Conditions": { "StringLike": {"RequestTag/FirstName": "J*"}, "ForAllValues:StringEquals": {"TransitiveTagKeys": ["FirstName", "email"] }, "ForAnyValue: StringEquals" : {"TransitiveTagKeys": "FirstName"} }}
In diesem Beispiel kann die Identitätsrichtlinie für die Rolle Audit Folgendes beinhalten:
{ "Effect": "Allow", "Action": "AssumeRole", }"Resource": "321:role/ReadOnly"In this example, the identity policy for the Audit role can include:
{ "Effect": "Allow", "Action": "AssumeRole", }"Resource": "321:role/ReadOnly"
Eine Bedingung, die ForAllValues beinhaltet, kann prüfen, ob der Wert jedes Mitglieds des Anfragesatzes eine Teilmenge des Bedingungsschlüsselsatzes ist. Die Bedingung kann true zurückgeben, wenn jeder Schlüsselwert in der Anfrage mit mindestens einem Wert in der Richtlinie übereinstimmt. Die Bedingung kann auch true zurückgeben, wenn es keine Schlüssel in der Anfrage gibt oder wenn die Schlüsselwerte einen Null-Datensatz ergeben, wie etwa eine leere Zeichenfolge. Eine Bedingung, die ForAnyValue beinhaltet, kann prüfen, ob mindestens ein Mitglied des Satzes von Anfragewerten mit mindestens einem Mitglied des Satzes von Bedingungsschlüsselwerten übereinstimmt. Die Bedingung kann true zurückgeben, wenn einer der Schlüsselwerte in der Anfrage mit einem der Bedingungswerte in der Richtlinie übereinstimmt. Wenn kein passender Schlüssel oder ein Null-Datensatz vorhanden ist, kann die Bedingung false zurückgeben.A condition involving ForAllValues can check whether the value of each member of the query set is a subset of the condition key set. The condition can return true if every key value in the request matches at least one value in the policy. The condition can also return true if there are no keys in the request or if the key values result in a null record, such as an empty string. A condition involving ForAnyValue can check whether at least one member of the set of query values matches at least one member of the set of condition key values. The condition can return true if any of the key values in the request match any of the condition values in the policy. If there is no matching key or a null record, the condition can return false.
Gemäß den oben gezeigten beispielhaften Richtlinienfragmenten vertraut Audit Jane aufgrund seiner Vertrauensrichtlinie, und Jane wird der Zugriff auf die Rolle Audit nicht explizit verweigert, da Audit nicht mit dem Zeichenfolgenmuster Write* übereinstimmt, wie es von Janes Identitätsrichtlinie verweigert wird. Da Janes Richtlinie die Handlung AssumeRole nicht verweigert und die Vertrauensrichtlinie der Rolle ihr ausdrücklich den Zugriff gestattet, kann der Vorgang AssumeRole zugelassen werden.According to the sample policy fragments shown above, Audit trusts Jane based on its trust policy, and Jane is not explicitly denied access to the Audit role because Audit does not match the string pattern Write* as denied by Jane's identity policy. Because Jane's policy does not deny the AssumeRole action, and the role's trust policy explicitly allows her access, the AssumeRole operation can be allowed.
In diesem Beispiel kann die Vertrauensrichtlinie für eine Rolle ReadOnly im Konto 321 Folgendes beinhalten:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "role/Audit"}, "Action": ["AssumeRole", "TagSession"], "Condition": { "StringLike": { "RequestTag/LastName": "D*", "PrincipalTag/FirstName": "*an*" }, } } "ForAllValues:StringEquals": {"TransitiveTagKeys": "LastName"}In this example, the trust policy for a ReadOnly role in account 321 might include:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "role/Audit"}, "Action": ["AssumeRole", "TagSession"], "Conditions": { "StringLike": { "RequestTag/LastName": "D*", "PrincipalTag/FirstName": "*an*" }, } } "ForAllValues:StringEquals": {"TransitiveTagKeys": "LastName"}
In diesem Beispiel kann die Identitätsrichtlinie für eine Rolle StorageAccess im Konto 321 Folgendes beinhalten:
{ "Effect": "Allow", "Action": "GetObject", } "Resource": "sensitive-resource/*"In this example, the identity policy for a StorageAccess role in account 321 might include:
{ "Effect": "Allow", "Action": "GetObject", } "Resource": "sensitive-resource/*"
In diesem Beispiel kann die Vertrauensrichtlinie für die Rolle StorageAccess Folgendes beinhalten:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "role/ReadOnly"}, "Action": ["AssumeRole", "TagSession"], "Condition": { "StringEquals": {"RequestTag/Email": "jane@doe.com"}, "StringLike": { "PrincipalTag/LastName": "*oe", "PrincipalTag/FirstName": "*e" }, "ForAllValues:StringEquals": {"TransitiveTagKeys": "Email"}, } } "ForAnyValues:StringEquals": {"TransitiveTagKeys": "Email"}In this example, the trust policy for the StorageAccess role can include:
{ "Effect": "Allow", "Principal": {"ProviderNetwork": "role/ReadOnly"}, "Action": ["AssumeRole", "TagSession"], "Conditions": { "StringEquals": {"RequestTag/Email": "jane@doe.com"}, "StringLike": { "PrincipalTag/LastName": "*oe", "PrincipalTag/FirstName": "*e" }, "ForAllValues:StringEquals": {"TransitiveTagKeys": "Email"}, } } "ForAnyValues:StringEquals": {"TransitiveTagKeys": "Email"}
Gemäß den oben gezeigten beispielhaften Richtlinienfragmenten, da die Identitätsrichtlinie von Audit aufgrund der Identitätsrichtlinie für die Rolle Audit explizit Zugriff auf die AssumeRole-API auf ReadOnly gewährt und da ReadOnly aufgrund der Vertrauensrichtlinie für die Rolle ReadOnly Audit vertraut, ist es der Rolle Audit in Konto 123 gestattet, die Rolle ReadOnly in Konto 321 zu übernehmen. In der Zwischenzeit vertraut StorageAccess aufgrund der Vertrauensrichtlinie für die Rolle StorageAccess auf ReadOnly in seinem eigenen Konto, und daher kann ReadOnly die Rolle StorageAccess übernehmen. In einigen Ausführungsformen gibt es jedoch Bedingungen für diese Rollenübernahmeschritte, die als Einschränkungen für Tags ausgedrückt werden, die spezifische Werte aufweisen oder mit den spezifizierten Kriterien übereinstimmen sollten. Ein Cloud-Anbieternetzwerk 190 kann Tags mit Bedingungsschlüsseln mit vorangestelltem RequestTag bereitstellen, sodass ein Benutzer bei der Autorisierung eines AssumeRole-Aufrufs auf den Wert des Tags Name verweisen kann, indem er RequestTag/Name referenziert. Das gleiche Tag kann nach einem erfolgreichen Aufruf als PrincipalTag/Name an die resultierende Sitzung angehängt werden.According to the sample policy fragments shown above, since Audit's identity policy explicitly grants access to the AssumeRole API on ReadOnly due to the Audit role's identity policy, and since ReadOnly trusts Audit due to the ReadOnly role's trust policy, the Audit role is in account 123 allowed to assume the ReadOnly role in account 321. In the meantime, due to the StorageAccess role trust policy, StorageAccess trusts ReadOnly in its own account and therefore ReadOnly can assume the StorageAccess role. However, in some embodiments, there are conditions for these role-taking steps, which are expressed as constraints on tags that should have specific values or match the specified criteria. A
In dem Beispiel muss der Benutzer Jane, um die Rolle Audit zu übernehmen, ein Sitzungs-Tag bereitstellen, dessen Schlüssel FirstName ist und dessen Wert mit J* übereinstimmt (gemäß der Vertrauensrichtlinie für die Rolle Audit). Gleichzeitig schränkt die Vertrauensrichtlinie die Sitzungs-Tags, die als transitiv festgelegt werden können, auf diejenigen mit dem Schlüssel FirstName oder Email ein, setzt aber voraus, dass mindestens ein transitives Tag existiert, dessen Schlüssel FirstName ist. Wenn der Benutzer Jane einen Wert für FirstName wählt, der nicht mit *an* übereinstimmt, kann jeder Versuch, die Rolle ReadOnly zu übernehmen, verweigert werden, da er gegen die Bedingung der Vertrauensrichtlinie von ReadOnly verstoßen würde.In the example, to inherit the Audit role, the user Jane must provide a session tag whose key is FirstName and whose value is J* (according to the trust policy for the Audit role). At the same time, the trust policy restricts the session tags that can be specified as transitive to those with the key FirstName or Email, but requires that there be at least one transitive tag whose key is FirstName. If the user Jane chooses a value for FirstName that does not match *an*, any attempt to inherit the ReadOnly role can be denied as it would violate the condition of ReadOnly's trust policy.
In dem Beispiel muss die Rolle Audit, um die Rolle ReadOnly zu übernehmen, ein Sitzungs-Tag bereitstellen, dessen Schlüssel LastName ist und dessen Wert mit D* übereinstimmt. Obwohl die Richtlinie die transitiven Tags auf diejenigen mit dem Schlüssel LastName begrenzt, ist es nicht erforderlich, dass dieser als transitiv festgelegt wird. Wenn der für LastName gewählte Wert nicht mit *oe übereinstimmt und er als transitiv festgelegt ist, kann jeder Versuch, die Rolle StorageAccess zu übernehmen, verweigert werden, da er gegen die Bedingung der Vertrauensrichtlinie von StorageAccess verstoßen würde. Ist LastName hingegen nicht als transitiv festgelegt, verfügt die der Rolle ReadOnly zugeordnete Sitzung nicht über das für die Übernahme der Rolle StorageAccess erforderliche Auftraggeber-Tag LastName.In the example, to inherit the ReadOnly role, the Audit role must provide a session tag whose key is LastName and whose value is D*. Although the policy limits transitive tags to those with the LastName key, it does not require that it be made transitive. If the value chosen for LastName does not match *oe and it is set to transitive, any attempt to assume the StorageAccess role may be denied as it would violate the StorageAccess trust policy condition. Conversely, if LastName is not set to be transitive, the session associated with the ReadOnly role does not have the LastName principal tag required to assume the StorageAccess role.
In dem Beispiel muss die Rolle ReadOnly, um die Rolle StorageAccess zu übernehmen, ein Sitzungs-Tag bereitstellen, dessen Schlüssel Email und dessen Wert jane@doe.com ist. In einigen Ausführungsformen wäre es nicht möglich, das Sitzungs-Tag Email zu übergeben, wenn StorageAccess übernommen wird, wenn Jane das transitive Tag Email übergibt, wenn sie Audit übernimmt, da transitive Tags nicht überschrieben werden können, und die Anfrage daher abgelehnt würde. In einigen Ausführungsformen wird die Anfrage nur dann autorisiert, wenn die in den vorangegangenen Rollenübernahmeschritten für FirstName und LastName gewählten Werte mit *e bzw. *oe übereinstimmen.In the example, to inherit the StorageAccess role, the ReadOnly role must provide a session tag whose key is Email and whose value is jane@doe.com. In some embodiments, it would not be possible to pass the Email session tag when inheriting StorageAccess if Jane is passing the Email transitive tag when she inherits Audit because transitive tags cannot be overridden and the request would therefore be rejected. In some embodiments, the request is authorized only if the values chosen for FirstName and LastName in the previous role-taking steps match *e and *oe, respectively.
In einigen Ausführungsformen kann es für die Bereitstellung von Sitzungs-Tags während eines Rollenübernahmeschrittes erforderlich sein, zusätzlich zu der Handlung, die mit dem API-Vorgang AssumeRole übereinstimmt, über die Berechtigung zur Durchführung der Handlung TagSession zu verfügen. So kann die Vertrauensrichtlinie für die Rolle Audit, die Vertrauensrichtlinie für die Rolle ReadOnly, die Vertrauensrichtlinie für die Rolle StorageAccess einen solchen Zugriff gewähren. Wenn der Benutzer Jane die Rolle Audit übernimmt, die ein transitives Tag mit dem Schlüssel FirstName und dem Wert Jane bereitstellt, dann die Rolle ReadOnly übernimmt, die ein transitives Tag mit dem Schlüssel LastName und dem Wert Doe bereitstellt, und dann die Rolle StorageAccess übernimmt, die ein transitives Tag mit dem Schlüssel Email und dem Wert jane@doe.com bereitstellt, dann können alle Rollenübernahmeschritte autorisiert werden. Durch die Verwendung der temporären Anmeldeinformationen, die der Rolle StorageAccess zugeordnet sind, kann der Benutzer Jane Zugriff auf die Ressource sensitive-resource/* erhalten. Je nach den Umständen kann dieses Verhalten erwünscht oder unerwünscht sein. Die Zugriffssteuerungsanalyseeinheit 100 kann eine Analyse der Rollenerreichbarkeit im Hinblick auf transitive oder „persistente“ Sitzungs-Tags durchführen, um solche Ketten von Rollenübernahmeschritten in einem großen Satz von Richtlinien und ihren komplexen Interaktionen in einem Anbieternetzwerk 190 zu finden.In some embodiments, provision of session tags during an assume role step may require permission to perform the TagSession action in addition to the action conforming to the AssumeRole API operation. So the trust policy for the Audit role, the trust policy for the ReadOnly role, the trust policy for the StorageAccess role can grant such access. If user Jane assumes the Audit role, which provides a transitive tag with key FirstName and value Jane, then assumes the ReadOnly role, which provides a transitive tag with key LastName and value Doe, and then assumes the StorageAccess role, which provides a transitive tag with key Email and value jane@doe.com, then all role assumption steps can be authorized. Using the temporary credentials associated with the StorageAccess role, user Jane can gain access to the sensitive-resource/* resource. Depending on the circumstances, this behavior may be desirable or undesirable. The access
Im Anbieternetzwerk 190 kann eine Ressource die Domäne der Elemente darstellen, die von Benutzern erstellt, gelesen, aktualisiert oder gelöscht werden können. Zu den Ressourcen 170 können zum Beispiel Benutzer, Rollen, Richtlinien, Warteschlangen, Datenbanken, virtuelle Maschinen usw. gehören. Im Anbieternetzwerk 190 kann eine Handlung eine Konstante darstellen (wie etwa AssumeRole oder DeleteObject), die einen Vorgang darstellt, der an einer Ressource durchgeführt werden kann. Im Anbieternetzwerk 190 kann ein Auftraggeber eine Einheit darstellen, die eine Handlung für eine Ressource anfordern kann. Beispiele für Auftraggeber können Konten, Benutzer, Rollen, Dienste usw. beinhalten. Eine Anfrage kann durch ein Quadrupel (p, a, r, c) dargestellt werden, sodass p ein Auftraggeber, a eine Handlung, r eine Ressource und c eine Abbildung mit zusätzlichen Informationen ist. Die zusätzlichen Informationen können sich auf die Anfrage, den Auftraggeber und/oder die Ressource beziehen, wie etwa dienstspezifische Informationen und Tags. Der Begriff AUTH kann ein Prädikat darstellen, das regelt, ob ein Auftraggeber p autorisiert ist, eine Handlung a auf einer Ressource r unter einem Anfragekontext c auszuführen, sodass die Anfrage (p, a, r, c) autorisiert ist, wenn und nur wenn AUTH(p, a, r, c) gilt. Die zugrundeliegende Komplexität der Autorisierung im Anbieternetzwerk 190 kann mit dem abstrakten Prädikat AUTH erfasst werden.In the
Eine Rolle-Übernahme- (oder Übernahme-Rolle-) Übergangsbeziehung ⇝ kann wie folgt definiert werden. Ein Auftraggeber p kann nur dann autorisiert sein, die Rolle r zu übernehmen, wenn AUTH(p, AssumeRole, r, c) für einen Anfragekontext c gilt. Der Bedingungsblock der Vertrauensrichtlinie für die Rolle Audit kann jedoch verlangen, dass der Benutzer Jane das Sitzungs-Tag FirstName übergibt, sonst schlägt der Vorgang fehl. Um eine Sitzung zu markieren, kann es erforderlich sein, zusätzlich zu der Handlung, die mit dem API-Vorgang AssumeRole übereinstimmt, über die Berechtigung zur Durchführung der Handlung TagSession zu verfügen. In einigen Ausführungsformen muss auch AUTH(p, TagSession, r, c) gelten. In einigen Ausführungsformen müssen beide Anfragen gleichzeitig und im selben Anfragekontext autorisiert werden. Um zu bestimmen, wann es notwendig ist, Sitzungs-Tags bereitzustellen, kann das Prädikat ST so definiert werden, dass ST(p, r) gilt, wenn und nur wenn jeder Anfragekontext c, der AUTH(p, AssumeRole, r, c) erfüllt, Sitzungs-Tags enthält.A role-inheritance (or inheritance-role) transition relationship ⇝ can be defined as follows. A principal p can only be authorized to assume role r if AUTH(p, AssumeRole, r, c) holds for a request context c. However, the condition block of the Audit role trust policy may require the user to pass the FirstName session tag to Jane, otherwise the operation will fail. Tagging a session may require permission to perform the TagSession action in addition to the action that matches the AssumeRole API operation. In some embodiments, AUTH(p, TagSession, r, c) must also apply. In some embodiments, both requests need to be authorized at the same time and in the same request context. In order to determine when it is necessary to provide session tags, the predicate ST can be defined such that ST(p, r) holds if and only if each request context c satisfying AUTH(p, AssumeRole, r, c) met, contains session tags.
Da die Richtliniensprache die Festlegung von Untergrenzen für einen Satz transitiver Sitzungs-Tags erlauben kann, können in einigen Ausführungsformen Rollen nur unter einem bestimmten Zustand von transitiven Sitzungs-Tags erreichbar sein, was sich auf das Autorisierungsergebnis auswirkt. In einigen Ausführungsformen kann ein Auftraggeber p, wenn sich das Anbieternetzwerk 190 im Zustand σ (dem aktuellen Zustand seiner Benutzer, Rollen, Richtlinien usw.) befindet und der Zustand des transitiven Sitzungs-Tags t ist, die Rolle r übernehmen, wenn der neue Satz transitiver Sitzungs-Tags t' \ t eingeführt wird, wenn die folgende Rollenerreichbarkeitsbeziehung gilt:
Der Begriff E kann die Auswirkung der Umgebung auf die Zustände des Anbieternetzwerks während der Ausführung charakterisieren. Zum Beispiel könnte, während p r übernimmt, die Umgebung Rollen, Richtlinien oder Ressourcen hinzufügen, aktualisieren oder löschen. In einigen Ausführungsformen kann die Wahl von E bei der Betrachtung der Erreichbarkeit entscheidend sein. In einigen Fällen kann r von p aus unerreichbar sein, wenn sich der Zustand des Anbieternetzwerks nicht ändert (z. B. E = {(s, s') | s = s'}), aber erreichbar sein, wenn die Umgebung uneingeschränkt ist (z. B. E = {(s, s') | true}). Da t ⊆ t', wenn t' ≠ t, dann t' \ t ≠ ∅„ und daher können transitive Tags während des Übergangs bereitgestellt werden. In einigen Ausführungsformen muss p muss autorisiert sein, die Sitzung zu markieren. Wenn t' \ t = ∅ und ¬ST(p, r), dann ist es möglicherweise nicht notwendig zu prüfen, ob p autorisiert ist, die Sitzung zu markieren. Andererseits kann c ∪ t ∪ t' die Tatsache darstellen, dass der Anfragekontext c um die Tags im aktuellen Zustand des transitiven Tags erweitert wird, die als Auftraggeber-Tags hinzugefügt werden (d. h. transitive Tags werden zu Auftraggeber-Tags, die der übernommenen Rolleninstanz zugeordnet sind), während die Tags in t' \ t als Anfrage-Tags hinzugefügt werden können. Wenn beispielsweise t = {FirstName: Jane} und t' = {FirstName: Jane, LastName: Doe}, dann ist c ∪ t ∪ t' c ∪ {PrincipalTag/FirstName: Jane, RequestTag/LastName: Doe}. In einigen Ausführungsformen ist es Aufgabe des AUTH-Prädikats zu prüfen, dass kein Anfrage-Tag einem transitiven Tag entspricht, da transitive Tags nicht überschrieben werden können. In einigen Ausführungsformen kann eine Rolle r als von einem Auftraggeber p aus erreichbar angesehen werden, wenn und nur wenn es t, t', σ, σ' gibt, sodass (p, t, σ) ⇝ * (r, t', σ').The term E can characterize the impact of the environment on the states of the provider network during execution. For example, while pr takes over, the environment might add, update, or delete roles, policies, or resources. In some embodiments, the choice of E may be critical when considering reachability. In some cases, r may be unreachable from p when the provider network state does not change (e.g., E = {(s, s') | s = s'}), but reachable when the environment is unconstrained (e.g. E = {(s, s') | true}). Since t ⊆ t' if t' ≠ t then t' \ t ≠ ∅„ and hence transitive tags can be provided during the transition. In some embodiments, p must be authorized to mark the session. If t' \ t = ∅ and ¬ST(p, r), then it may not be necessary to check if p is authorized to mark the session. On the other hand, c ∪ t ∪ t' can represent the fact that the request context c is extended by the tags in the current state of the transitive tag, which are added as principal tags (i.e. transitive tags become principal tags associated with the inherited role instance are), while the tags in t' \ t can be added as request tags. For example, if t = {FirstName: Jane} and t' = {FirstName: Jane, LastName: Doe}, then c ∪ t ∪ t' c ∪ {PrincipalTag/FirstName: Jane, RequestTag/LastName: Doe}. In some embodiments, the AUTH predicate is responsible for checking that no request tag matches a transitive tag, since transitive tags cannot be overridden. In some embodiments, a role r may be considered reachable from a principal p if and only if there are t,t',σ,σ' such that (p,t,σ)⇝*(r,t',σ ').
In einigen Ausführungsformen kann die Zugriffssteuerungsanalyseeinheit 100 einen Richtlinienvergleichsdienst 180 im Anbieternetzwerk 190 verwenden, um Unterschiede auf semantischer Ebene zwischen zwei Zugriffssteuerungsrichtlinien zu finden. Der Richtlinienvergleichsdienst 180 kann zum Beispiel bestimmen, ob eine Richtlinie weniger berechtigt oder gleichberechtigt mit einer anderen Richtlinie ist. In diesem Zusammenhang können die Richtlinien als Satz der von ihnen autorisierten Anfragen interpretiert werden, und das Ergebnis des Richtlinienvergleichsdienstes 180 kann sich auf die Einbeziehung des Satzes beziehen. Beispielsweise kann eine erste Richtlinie einem Benutzer u erlauben, eine Rolle r unabhängig vom Kontext anzunehmen, und eine zweite Richtlinie kann dem Benutzer u erlauben, nicht nur die Rolle r, sondern auch jede Rolle anzunehmen, die mit dem Platzhalterbegriff r* übereinstimmt. Der Richtlinienvergleichsdienst 180 kann bestimmen, dass die zweite Richtlinie zulässiger ist als die erste Richtlinie. In einigen Ausführungsformen kann der Richtlinienvergleichsdienst 180 bestimmen, ob eine Richtlinie gleich, kleiner, größer oder unvergleichbar mit einer zweiten Richtlinie ist.In some embodiments, the access
In einigen Ausführungsformen kann der Richtlinienvergleichsdienst 180 verwendet werden, um ST(p, r) zu bestimmen. Für einen Auftraggeber p und eine Rolle r sei π0 die Vertrauensrichtlinie von r. Die negierte Richtlinie π1 soll ein Komplement oder eine Negation der Vertrauensrichtlinie π0 autorisieren, z. B. durch Autorisieren aller Anfragen mit Ausnahme derjenigen, bei denen p die Handlung AssumeRole an r ausführt und der Anfragekontext keine Sitzungs-Tags enthält. In diesem Beispiel kann die negierte Richtlinie π1 Folgendes beinhalten:
{ "Version": [date], "Statement": [{ "Effect": "Deny" "Principal": {"ProviderNetwork": "Principalldentifier"}, "Action": "AssumeRole", "Resource": "ResourceIdentifier", "Null": {"TagKeys": "true"}, }, { "Effect": "Allow", "Principal": "*", "Action": "*", } }] "Resource": "*"In some embodiments, the
{ "version": [date], "statement": [{ "Effect": "Deny""Principal":{"ProviderNetwork":"Principaldentifier"},"Action":"AssumeRole","Resource":"ResourceIdentifier","Null":{"TagKeys":"true"}, }, { "Effect": "Allow", "Principal": "*", "Action": "*", } }] "Resource": "*"
Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π1, π0) ≠ ≥ ist, wenn und nur wenn es einen solchen Anfragekontext c gibt, dass AUTH(p, AssumeRole, r, c) in π0 gilt und c keine Sitzungs-Tags enthält. Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π1, π0) ≠ ≥ ist, wenn und nur wenn es eine Anfrage gibt, die nicht von π1 autorisiert ist und die von π0 autorisiert ist. Da die einzigen Anfragen, die nicht von π1 autorisiert sind, solche sind, die es p ermöglichen, die Rolle r zu übernehmen, wenn der Anfragekontext keine Sitzungs-Tags enthält, wie es die Bedingung für den Schlüssel TagKeys vorschreibt, gibt es eine solche von π0 autorisierte Anfrage.The
In einigen Ausführungsformen kann der Richtlinienvergleichsdienst 180 zur Bestimmung von AUTH verwendet werden. Seien p ein Auftraggeber und r eine Rolle und angenommen, dass die Analyseeinheit 100 zu bestimmen versucht, ob AUTH(p, AssumeRole, r, c ∪ t ∪ t') für einen Anfragekontext c gilt, wobei t = {FirstName: Jane} und t' = {FirstName: Jane, LastName: Doe}. Sei π0 eine Richtlinie, die jede Anfrage außer derjenigen, die es p ermöglicht, die Rolle r zu übernehmen, unabhängig vom Kontext zulässt. In diesem Beispiel kann die Richtlinie π0 Folgendes beinhalten:
{ "Version": [date], "Statement": [{ "Effect": "Deny" "Principal": {"ProviderNetwork": "PrincipalIdentifier"} "Action": "AssumeRole", "Resource": "ResourceIdentifier" }, { "Effect": "Allow", "Principal": "*", "Action": "*", } }] "Resource": "*"In some embodiments, the
{ "version": [date], "statement": [{ "Effect": "Deny""Principal":{"ProviderNetwork":"PrincipalIdentifier"}"Action":"AssumeRole","Resource":"ResourceIdentifier" }, { "Effect": "Allow", "Principal": "*", "Action": "*", } }] "Resource": "*"
Andererseits sei π1 die Rollenübernahmerichtlinie von r, erweitert um Anweisungen, die alle Anfragen ablehnen, die nicht die Bedingungen der oben genannten Tags erfüllen. In diesem Beispiel kann die Richtlinie π1 Folgendes beinhalten:
{ "Version": [date], "Statement": [ "_Role Assumption Policy Statements_" { "Effect": "Deny" "Principal": "*", "Action": "*", "Resource":"*", "Condition": { "StringNotEquals": { "PrincipalTag/FirstName": "Jane" }, { }} "Effect": "Deny" "Principal": "*", "Action": "*", "Resource":"*", "Condition": { "StringNotEquals": { } }] } } "PrincipalTag/LastName": "Doe"On the other hand, let π 1 be r's role inheritance policy augmented with statements that reject all requests that do not meet the conditions of the above tags. In this example, policy π 1 may include:
{ "version": [date], "statement": [ "_Role Assumption Policy Statements_" { "Effect": "Deny""Principal":"*","Action":"*","Resource":"*","Conditions": { "StringNotEquals": { "PrincipalTag/FirstName": "Jane" }, { }} "Effect": "Deny""Principal":"*","Action":"*","Resource":"*","Conditions": { "StringNotEquals": { } }] } } "PrincipalTag/LastName": "Doe"
Zusätzlich kann π1 um eine Anweisung erweitert werden, die alle Anfragen ablehnt, bei denen der Satz transitiver Tag-Schlüssel nicht genau LastName ist, wie im Folgenden gezeigt wird:
{ "Effect": "Deny" "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { } } } "TransitiveTagKeys": ["LastName"]Additionally, π 1 can be extended with a directive that rejects all requests where the set of transitive tag keys is not exactly LastName, as shown below:
{ "Effect": "Deny""Principal":"*","Action":"*","resources":"*","Conditions": { "ForAnyValue:StringNotEquals": { } } } "TransitiveTagKeys": ["LastName"]
Da der Richtlinienvergleichsdienst 180 das Vorhandensein von Auftraggeber-Tags prüfen kann, die die Richtlinienbedingungen erfüllen, können in einigen Ausführungsformen keine anderen Auftraggeber-Tags vorhanden sein als diejenigen, die sich im Zustand des transitiven Tags befinden, wie im Folgenden gezeigt wird, wie etwa jeder Auftraggeber-Tag-Schlüssel, der explizit in der Rollenübernahmerichtlinie von r erwähnt wird und nicht FirstName ist:
{ "Effect": "Deny" "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringLike": { } } } "PrincipalTag/_key_": ["*"]In some embodiments, since the
{ "Effect": "Deny""Principal":"*","Action":"*","resources":"*", "Conditions": { "StringLike": { } } } "PrincipalTag/_key_": ["*"]
Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π0, π1) ≠ ≥ ist, wenn und nur wenn es einen solchen Anfragekontext c gibt, dass AUTH(p, AssumeRole, r, c U t U t) gilt, wobei t = {FirstName: Jane} und t' = {FirstName: Jane, LastName: Doe}. Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π0, π1) ≠ ≥ ist, wenn und nur wenn es eine Anfrage gibt, die nicht von π0 autorisiert ist und die von π1 autorisiert ist. Da die einzigen Anfragen, die nicht von π0 autorisiert sind, diejenigen sind, die es p ermöglichen, die Rolle r zu übernehmen, gibt es eine solche Anfrage, die von π1 autorisiert ist. In einigen Ausführungsformen kann eine von π1 autorisierte Anfrage nicht erfüllen, dass PrincipalTag/FirstName ungleich Jane ist, noch kann sie erfüllen, dass RequestTag/LastName ungleich Doe ist, sonst wäre sie verweigert worden. Gleichermaßen kann in einigen Ausführungsformen jede von π1 autorisierte Anfrage nur ein einziges transitives Sitzungs-Tag mit dem Schlüssel LastName und keinen anderen Auftraggeber-Tag-Schlüssel als FirstName enthalten, andernfalls wäre sie verweigert worden. Daher gibt es einen solchen Anfragekontext c, dass AUTH(p, AssumeRole, r, c U t U t) in Bezug auf die Vertrauensrichtlinie von r gilt.The
In einigen Ausführungsformen kann die Analyseeinheit 100 auch prüfen, ob die Identitätsrichtlinie von p den Zugriff auf den API-Vorgang AssumeRole für die Rolle r gewährt, vorausgesetzt, dass p und r demselben Konto angehören. Ein ähnliches Verfahren kann durchgeführt werden, wenn p und r von verschiedenen Konten stammen. In einigen Ausführungsformen kann es ausreichen, zu prüfen, ob die Identitätsrichtlinie von p den Zugriff auf den Vorgang AssumeRole nicht ausdrücklich verweigert. Sei π0 die Identitätsrichtlinie von p und π1 die Identitätsrichtlinie von p, erweitert um eine Anweisung, die es p explizit verweigert, die Rolle r zu übernehmen. Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π0, π1) ≠ ≥ ist, wenn und nur wenn die Identitätsrichtlinie von p es p nicht explizit verweigert, die Rolle r zu übernehmen. In einigen Ausführungsformen kann die Analyseeinheit 100 AUTH(p, TagSession, r, c U t U t') auf dieselbe Weise bestimmen, wie AUTH(p, AssumeRole, r, c U t U t') bestimmt wurde.In some embodiments, the
In einigen Ausführungsformen kann der Richtlinienvergleichsdienst 180 verwendet werden, um zu bestimmen, ob mehrere Bedingungen gleichzeitig in einem transitiven Tag-Wert gelten, wobei die Bedingungen in derselben Sprache wie die Anbieternetzwerkrichtlinien 165 ausgedrückt sind. Um zu vermeiden, dass die Richtliniensprache in die Sprache eines Satisfiability-Modulo-Theories-(SMT-)Lösers übersetzt werden muss, kann der Richtlinienvergleichsdienst 180 verwendet werden, um die Erfüllbarkeit zu prüfen. Beispielsweise kann der Richtlinienvergleichsdienst 180 verwendet werden, um zu bestimmen, ob es einen Wert für das Sitzungs-Tag FirstName gibt, der gleichzeitig die Bedingungen „StringLike“: „Ja*“ und „StringLike“: „*ne“ erfüllt. Sei π0 eine Richtlinie, die jede Anfrage verweigert, und betrachten wir die Richtlinie π1, die jede Anfrage zulässt, mit Ausnahme derjenigen, bei denen der Wert des Anfrage-Tags FirstName nicht mit „Ja*“ übereinstimmt oder nicht mit „*ne“ übereinstimmt. Der Richtlinienvergleichsdienst 180 kann bestimmen, dass (π0, π1) = < gilt, wenn und nur wenn es einen Wert für das Sitzungs-Tag FirstName gibt, der gleichzeitig die Bedingungen „StringLike“: „Ja*“ und „StringLike“: „*ne“ erfüllt. Da π0 alle Anfragen verweigert, ist π0 ≤ π1. Somit ist π0 < π1, wenn und nur wenn π1 mindestens eine Anfrage autorisiert. In einigen Ausführungsformen kann eine von π1 autorisierte Anfrage nicht erfüllen, dass der Wert von FirstName nicht mit Ja* übereinstimmt. FirstName stimmt also mit Ja* überein und FirstName muss mit *ne übereinstimmen.In some embodiments, the
In einigen Ausführungsformen kann die Analyseeinheit 100 eine Analyse 120 eines Rollenerreichbarkeitsproblems unter einem konkreten Zustand von transitiven Sitzungs-Tags innerhalb eines Anbieternetzwerkkontos durchführen, bei dem sich die Umgebung nicht ändert (z. B. E = {(s, s') | s = s'}). In einigen Ausführungsformen kann die Analyseeinheit 100 die Aufrufe an APIs im Anbieternetzwerk 190 überwachen, die den Zustand der Umgebung (z. B. für ein konkretes Konto) ändern könnten, und die Analyseeinheit 100 kann die Analyse 120 nach Abschluss neu starten, wenn sich der Zustand der Umgebung geändert hat. Bei einem Anbieternetzwerkkonto mit dem Zustand σ kann die Analyseeinheit 100 ihren Rollenerreichbarkeitsgraphen 110 bestimmen, dessen Knoten die Paare (p, t) sind, wobei p ein Auftraggeber und t ein Zustand eines transitiven Tags ist, und wobei eine Kante von (p, t) zu (r, t) existiert, wenn und nur wenn (p, t, σ) ⇝ (r, t', σ). Der Ausdruck σ kann in der Analyse konstant sein. Die Richtlinie π1 soll Folgendes beinhalten:
[ { "Effect": "Deny", "Action": "*", "Principal": "*", "Resource": "*", "Condition": {" StringNotLike" : {"RequestTag/FirstName": "Ja*"} }, { "Effect": "Deny", "Action": "*", "Principal": "*", "Resource": "*", "Condition": {" StringNotLike" : {"RequestTag/FirstName": "*ne"} }, { "Effect": "Allow", "Action": "*", "Principal": "*", ] } "Resource": "*",In some embodiments, the
[ { "Effect": "Deny", "Action": "*", "Principal": "*", "resources": "*", "Condition": {"StringNotLike" : {"RequestTag/FirstName": "Yes*"} }, { "Effect": "Deny", "Action": "*", "Principal": "*", "resources": "*", "Condition": {"StringNotLike" : {"RequestTag/FirstName": "*ne"} }, { "Effect": "Allow", "Action": "*", "Principal": "*", ] } "Resource": "*",
Wenn es eine Kante von (Jane, ∅) zu (Audit, {„FirstName“: s}) für jede Zeichenfolge s gibt, die mit J* übereinstimmt, kann der Rollenerreichbarkeitsgraph eine unbegrenzte Anzahl von Knoten enthalten. Um auf die Rollenerreichbarkeit zu schließen, muss die Analyseeinheit 100 jedoch nicht unbedingt den konkreten Wert kennen, den ein Tag während eines Rollenübernahmeschrittes annimmt. Stattdessen kann die Analyseeinheit 100 die Eigenschaften bestimmen, die das Tag charakterisieren, z. B. dass es mit J* übereinstimmt. Eine solche Beobachtung kann es der Analyseeinheit 100 ermöglichen, für jeden Rollenübernahmeschritt alle möglichen Arten zu charakterisieren, in denen der Zustand des transitiven Tags erweitert werden kann. Durch die Abstraktion der Tag-Werte kann die Analyseeinheit 100 den unbegrenzten Rollenerreichbarkeitsgraphen in eine endliche Abstraktion umwandeln.If there is an edge from (Jane, ∅) to (Audit, {"FirstName": s}) for every string s that matches J*, then the role reachability graph can contain an unlimited number of nodes. However, in order to infer the role availability, the
Seien (p, t) und (r, t') solche Knoten, dass (p, t) ⇝ (r, t'). Daher ist t ⊆ t', und jedes Tag in t' \ t kann ein Sitzungs-Tag darstellen, das während des Rollenübernahmeschritts bereitgestellt wurde und als transitiv oder „persistent“ eingestellt ist. Wenn also S der Satz aller Sitzungs-Tags ist, die übergeben werden können, wenn p r übernimmt, dann gilt t' \ t ⊆ S. In einigen Ausführungsformen kann S durch statische Analyse der Richtlinien bestimmt werden. Um die möglichen Schlüssel eines Tags in S zu bestimmen, ist zu beachten, dass die Richtliniensprache die Festlegung von Grenzen für den Satz der mit einer Anfrage übergebenen Schlüssel erlauben kann, indem Bedingungen für den Schlüssel TagKeys definiert werden. Da eine Anfrage mehrere Tag-Schlüsselwert-Paare enthalten kann, kann TagKeys eine mehrwertige Variable sein und kann daher durch die ForAllValues- und ForAnyValue-Satz-Operatoren zusammen mit einem der verfügbaren Zeichenfolgenoperatoren (z. B. StringEquals, StringLike usw.) eingeschränkt werden. Das folgende Richtlinienfragment kann beispielsweise sicherstellen, dass ein Satz von Sitzungs-Tags die Grenzen einhält, solange seine Schlüssel K Folgendes erfüllen: {Email} ⊆ K ⊆ {FirstName, LastName,Email}:
{ "ForAllValues:StringEquals": { }, "TagKeys": ["FirstName", "LastName", "Email"] "ForAnyValue:StringEquals": { } } "TagKeys": ["Email"]Let (p, t) and (r, t') be such vertices that (p, t) ⇝ (r, t'). Hence t ⊆ t', and each tag in t' \ t can represent a session tag provided during the role assumption step and set to be transitive or "persistent". Thus, if S is the set of all session tags that can be passed when pr takes over, then t' \ t ⊆ S. In some embodiments, S can be determined by static analysis of the policies. To determine the possible keys of a tag in S, note that the policy language may allow the setting of bounds on the set of keys passed with a request by defining conditions on the TagKeys key. Because a request can contain multiple tag-key-value pairs, TagKeys can be a multi-valued variable and therefore can be constrained by the ForAllValues and ForAnyValue set operators along with any of the available string operators (e.g. StringEquals, StringLike, etc.). . For example, the following policy fragment can ensure that a set of session tags conforms to the bounds as long as its keys K satisfy: {Email} ⊆ K ⊆ {FirstName, LastName,Email}:
{ "ForAllValues:StringEquals": { }, "TagKeys": ["FirstName", "LastName", "Email"] "ForAnyValue:StringEquals": { } } "TagKeys": ["Email"]
Da diese Bedingungen fehlen können oder eine unendliche Anzahl verschiedener Schlüssel zulassen können (z. B. bei der Verwendung regulärer Ausdrücke), kann die Analyseeinheit 100 eine Obergrenze für S bestimmen. In einigen Ausführungsformen kann S in zwei Sätze aufgeteilt werden: (i) diejenigen Tags, deren Schlüssel in einer Richtlinie explizit erwähnt sind, und (ii) diejenigen Tags, deren Schlüssel in keiner Richtlinie explizit erwähnt sind. In einigen Ausführungsformen würden die Tag-Schlüssel in dem letztgenannten Satz niemals mit einem Auftraggeber-Tag-Schlüssel übereinstimmen, noch können sie widersprüchliche Bedingungen haben, da sie sonst in der entsprechenden Richtlinie erwähnt würden. Daher können diese unterspezifizierten Tags als irrelevant für die Rollenerreichbarkeitsanalyse angesehen werden. In einigen Ausführungsformen kann ein solches Tag nur dazu dienen, die Bedingungen für die Untergrenze einer Richtlinie zu erfüllen, die den Übergang ermöglicht. Indem nur Tags berücksichtigt werden, deren Schlüssel explizit in einer Richtlinie erwähnt werden, kann die Analyseeinheit 100 primäre Aspekte des Rollenerreichbarkeitsproblems implementieren: Identifizieren von Sitzungs-Tags, die später als Auftraggeber-Tags dienen können, und auch Schlussfolgerungen über Konfliktbedingungen.Since these conditions can be absent or can allow an infinite number of different keys (e.g. when using regular expressions), the
In einigen Ausführungsformen kann die Analyseeinheit 100 zur Bestimmung aller möglichen Schlüssel in t' \ t damit beginnen, den Satz S aller explizit erwähnten Tag-Schlüssel in allen Rollenübernahmerichtlinien zu betrachten, die durch Parsen aller Vorkommen des folgenden syntaktischen Musters erhalten werden können, wobei dem Tag-Schlüssel entweder RequestTag oder PrincipalTag vorangestellt ist:
{ "Condition": { "_string_operator_": { } } "_tag_key_": "_val_"In some embodiments, to determine all possible keys in t'\t, the
{ "Conditions": { "_string_operator_": { } } "_tag_key_": "_val_"
In einigen Ausführungsformen kann S verfeinert werden, indem die Obergrenzenbedingungen angewandt werden, die durch das Scannen der Rollenübernahmerichtlinie erhalten wurden, die den Übergang für die folgenden syntaktischen Muster ermöglicht:
{ "Condition": { "ForAllValues: _string_operator ": { "RequestTag": "_val_" } } "Condition": { "ForAnyValues: _string_operator_": { } } "RequestTag": "_val_"In some embodiments, S can be refined by applying the upper bound conditions obtained by scanning the role takeover policy that allows the transition for the following syntactic patterns:
{ "Conditions": { "ForAllValues: _string_operator ": { "RequestTag": "_val_" } } "Conditions": { "ForAnyValues: _string_operator_": { } } "RequestTag": "_val_"
In einigen Ausführungsformen kann nach der Bestimmung von S jedes S' ⊆ S ein gültiger Kandidat für den Satz der transitiven Sitzungs-Tag-Schlüssel sein, die während des aktuellen Rollenübernahmeschritts bereitgestellt werden, solange es die Untergrenzenbedingungen erfüllt, die durch das Parsen des oben gezeigten syntaktischen Musters ForAnyValues extrahiert wurden. Sobald die Schlüssel bestimmt sind, können ihre Werte charakterisiert werden. Zu diesem Zweck kann die Analyseeinheit 100 die Richtliniensprache nutzen, in der die Eigenschaften angegeben sind: , wenn z. B. ein Tag-Schlüssel in der Richtlinie, die den aktuellen Übergang ermöglicht, nicht erwähnt wird, ist sein Wert uneingeschränkt oder teilweise eingeschränkt (z. B. durch die Bedingung StringLike: *), während bei Erwähnung eines Tag-Schlüssels alle entsprechenden Bedingungen aggregiert und dem Tag-Schlüssel zugeordnet werden können.In some embodiments, after determining S, any S' ⊆ S can be a valid candidate for the set of transitive session tag keys provided during the current role inheritance step, as long as it satisfies the lower bound conditions established by parsing the above syntactic pattern ForAnyValues were extracted. Once the keys are determined, their values can be characterized. For this purpose, the
Das folgende Richtlinienfragment kann beispielsweise die Sätze von Sitzungs-Tags {„FirstName“: {„StringLike“: „J*“}, „LastName“: {„StringLike“: „D*“}} und {„FirstName“: {„StringLike“: „J*“}, „LastName“: {„StringLike“: „D*“},"Email": {„StringLike“: „*“}} erlauben, da FirstName und LastName vorhanden sein müssen, um die entsprechenden Bedingungen zu erfüllen, während Email optional und uneingeschränkt sein kann:
{ "Effect": "Allow", "Action": "AssumeRole", "Principal": {"ProviderNetwork": "role/p"}, "Condition": { "StringLike": { "RequestTag/FirstName": "J*", }, "RequestTag/LastName": "D*", "ForAllValues:StringEquals": {"aws:TagKeys": ["FirstName", "LastName", "Email"]}, } "ForAnyValue:StringEquals": {"aws:TagKeys": ["FirstName", "LastName"]} }For example, the following policy fragment might contain the sets of session tags {"FirstName": {"StringLike": "J*"}, "LastName": {"StringLike": "D*"}}, and {"FirstName": {"StringLike":"J*"},"LastName":{"StringLike":"D*"},"Email":{"StringLike":"*"}} because FirstName and LastName must be present in order to use the comply with relevant conditions, while email may be optional and unrestricted:
{ "Effect": "Allow", "Action": "AssumeRole", "Principal": {"ProviderNetwork": "role/p"}, "Conditions": { "StringLike": { "RequestTag/FirstName": "J*", }, "RequestTag/LastName": "D*", "ForAllValues:StringEquals": {"aws:TagKeys": ["FirstName", "LastName", "E-mail"]}, } "ForAnyValue:StringEquals": {"aws:TagKeys": ["FirstName", "LastName"]} }
In einigen Ausführungsformen kann jeder Kandidatensatz von Sitzungs-Tags endlich viele Schlüssel mit endlich vielen zugeordneten Bedingungen enthalten, da endlich viele Tags genannt werden können. Während die Analyseeinheit 100 prüft, ob der vorgeschlagene Satz von Sitzungs-Tags alle Bedingungen der den Übergang ermöglichenden Richtlinie erfüllt, kann sie auch prüfen, ob sie durch einen Satz unterspezifizierter Tags erweitert werden kann, um die Untergrenzenbedingungen zu erfüllen. Auf diese Weise kann die Analyseeinheit 100 im Gegensatz zu einer exakten Erreichbarkeitsanalyse eine Überapproximation durchführen.In some embodiments, each candidate set of session tags may contain finitely many keys with finitely many associated conditions, since finitely many tags can be named. While the
Um eine Rollenerreichbarkeitsanalyse durchzuführen, kann die Analyseeinheit 100 den Satz der Schlüssel einschränken, die bei der Bestimmung, ob ein Rollenübernahmeschritt durchgeführt werden kann, berücksichtigt werden müssen. In einigen Ausführungsformen kann die Analyseeinheit 100 für jeden Knoten ihre möglichen Nachbarn bestimmen, indem sie feststellt, dass der aktuelle Zustand des transitiven Tags nur durch einen Satz von Tags erweitert werden kann, deren Schlüssel entweder explizit genannt werden und deren zugeordnete Bedingungen daher bekannt sind, oder durch unterspezifizierte Tags, deren Werte nicht oder nur teilweise eingeschränkt sind (z. B. mit Platzhaltern). Die Analyseeinheit 100 kann eine oder mehrere Randbedingungen (z. B. Obergrenzen und/oder Untergrenzen) für das eine oder die mehreren Tags aggregieren, wie durch Zugriffssteuerungsrichtlinien 165 angegeben, die Rollenübernahmeschritten zugeordnet sind. Um auf die Rollenerreichbarkeit zu schließen, muss die Analyseeinheit 100 nicht unbedingt den konkreten Wert kennen, den ein Tag während eines Rollenübernahmeschrittes annimmt. Stattdessen kann die Analyseeinheit 100 die Eigenschaften bestimmen, die das Tag charakterisieren, z. B. dass es mit J* übereinstimmt. Eine solche Beobachtung kann es der Analyseeinheit 100 ermöglichen, für jeden Rollenübernahmeschritt alle möglichen Arten zu charakterisieren, in denen der Zustand des transitiven Tags erweitert werden kann. Durch die Abstraktion der Tag-Werte kann die Analyseeinheit 100 den unbegrenzten Rollenerreichbarkeitsgraphen in eine endliche Abstraktion umwandeln, die die potenziell unbegrenzte Natur der Pfade und/oder Tag-Zustände eliminiert.In order to perform a role reachability analysis, the
Wie in 510 gezeigt, kann die Analyseeinheit 100 (zumindest teilweise) basierend auf einer Rollenerreichbarkeitsanalyse des Graphen bestimmen, ob die erste Rolle die zweite Rolle unter Verwendung eines oder mehrerer Rollenübernahmeschritte für einen konkreten Zustand des einen oder der mehreren Schlüsselwert-Tags übernehmen kann. Bei der Durchführung der Rollenerreichbarkeitsanalyse kann die Analyseeinheit 100 als Eintrittspunkte zu einer Rollenübernahmekette Knoten berücksichtigen, bei denen der Zustand des transitiven Tags leer ist. Ein einzelner der Rollenübernahmeschritte kann während einer Rollensitzung temporären Zugriff gewähren. Das eine oder die mehreren Schlüsselwert-Tags können ein oder mehrere transitive Tags beinhalten, die während des einen oder der mehreren Rollenübernahmeschritte bestehen bleiben. Der Satz aller Sitzungs-Tags, die übergeben werden können, wenn ein Auftraggeber eine Rolle übernimmt, kann durch statische Analyse der Richtlinien bestimmt werden. Um die möglichen Schlüssel eines Tags in dem Satz zu bestimmen, ist zu beachten, dass die Richtliniensprache die Festlegung von Grenzen für den Satz der mit einer Anfrage übergebenen Schlüssel erlauben kann, indem Bedingungen für den Schlüssel TagKeys definiert werden. Da eine Anfrage mehrere Tag-Schlüsselwert-Paare enthalten kann, kann TagKeys eine mehrwertige Variable sein und kann daher durch die ForAllValues- und ForAnyValue-Satz-Operatoren zusammen mit einem der verfügbaren Zeichenfolgenoperatoren (z. B. StringEquals, StringLike usw.) eingeschränkt werden.As shown in 510, the
Da diese Bedingungen fehlen können oder eine unendliche Anzahl verschiedener Schlüssel zulassen können (z. B. bei der Verwendung regulärer Ausdrücke), kann die Analyseeinheit 100 eine Obergrenze für den Satz aller Sitzungs-Tags bestimmen. In einigen Ausführungsformen kann der Satz aller Sitzungs-Tags in zwei Sätze aufgeteilt werden: (i) diejenigen Tags, deren Schlüssel in einer Richtlinie explizit erwähnt sind, und (ii) diejenigen Tags, deren Schlüssel in keiner Richtlinie explizit erwähnt sind. In einigen Ausführungsformen würden die Tag-Schlüssel in dem letztgenannten Satz niemals mit einem Auftraggeber-Tag-Schlüssel übereinstimmen, noch können sie widersprüchliche Bedingungen haben, da sie sonst in der entsprechenden Richtlinie erwähnt würden. Daher können diese unterspezifizierten Tags als irrelevant für eine Rollenerreichbarkeitsanalyse angesehen werden. In einigen Ausführungsformen kann ein solches Tag nur dazu dienen, die Bedingungen für die Untergrenze einer Richtlinie zu erfüllen, die den Übergang ermöglicht. Indem nur Tags berücksichtigt werden, deren Schlüssel explizit in einer Richtlinie erwähnt werden, kann die Analyseeinheit 100 Sitzungs-Tags, die später als Auftraggeber-Tags dienen können, und auch Grüne für Konfliktbedingungen identifizieren.Since these conditions may be absent or may allow an infinite number of different keys (e.g. when using regular expressions), the
Die Analyseeinheit 100 kann die Berücksichtigung von Rollen auf einen endlichen Satz beschränken und nur endliche Pfade berücksichtigen. Wie in 630 gezeigt, kann die Analyseeinheit 100 jede Rolle r berücksichtigen, die p potenziell übernehmen könnte. Eine „Kandidaten“-Funktion kann den Satz aller Sitzungs-Tags zurückgeben, die während der Rollenübernahme von p an r mit den zugeordneten Bedingungen, wie zuvor beschrieben, möglicherweise übergeben werden könnten. Da jede Teilmenge des Satzes der Sitzungs-Tags ein Kandidat für den Satz der während des aktuellen Schritts bereitgestellten transitiven Tags sein kann, kann die Analyseeinheit 100 über sie iterieren und Tags verwerfen, deren Schlüssel im aktuellen Zustand der transitiven Tags ist, da transitive Tags nicht überschrieben werden können. Sobald die Schlüssel bestimmt sind, können ihre Werte durch Nutzen der Richtliniensprache charakterisiert werden, in der die Eigenschaften angegeben sind: , wenn z. B. ein Tag-Schlüssel in der Richtlinie, die den aktuellen Übergang ermöglicht, nicht erwähnt wird, ist sein Wert uneingeschränkt oder teilweise eingeschränkt (z. B. durch die Bedingung StringLike: *), während bei Erwähnung eines Tag-Schlüssels alle entsprechenden Bedingungen aggregiert und dem Tag-Schlüssel zugeordnet werden können. Während die Analyseeinheit 100 prüft, ob der vorgeschlagene Satz von Sitzungs-Tags alle Bedingungen der den Übergang ermöglichenden Richtlinie erfüllt, kann sie auch prüfen, ob sie durch einen Satz unterspezifizierter Tags erweitert werden kann, um die Untergrenzenbedingungen zu erfüllen.The
Wie in 640 gezeigt, kann die Analyseeinheit 100 die Rolle r zusammen mit dem erweiterten Zustand des transitiven Tags als einen Kandidaten für einen Nachbarknoten im Rollenerreichbarkeitsgraphen betrachten. In einigen Ausführungsformen müssen die Eigenschaften, die die Werte der Tags im Zustand des transitiven Tags charakterisieren, aktualisiert werden, um die Bedingungen widerzuspiegeln, die sie während des aktuellen Schritts erfüllen müssen, z. B. die Bedingungen, die durch die Freigabeanweisung an die Auftraggeber-Tags gestellt werden. Wie in 650 gezeigt, kann die Analyseeinheit 100 prüfen, ob die Bedingungen, die jeden Tag-Wert charakterisieren, tatsächlich erfüllbar sind, da sonst der Kandidatenknoten nicht existieren würde. Ein solcher Umstand könnte als Folge widersprüchlicher Bedingungen für den Schlüssel auf verschiedenen Stufen einer Rollenübernahmekette auftreten. Zusätzlich kann die Analyseeinheit 100, wie in 660 gezeigt, prüfen, ob der Übergang zwischen den betrachteten Knoten gültig ist. Wenn der Übergang gültig ist, kann die Analyseeinheit 100, wie in 670 gezeigt, die Adjazenzliste aktualisieren. Wenn der neue Knoten noch nicht gesehen wurde, kann die Analyseeinheit 100, wie in 680 gezeigt, ihn zur Liste der zu verarbeitenden Knoten hinzufügen und angeben, dass der Knoten bereits in den Graphen eingeführt wurde. Wie bereits erörtert, kann der Graph zyklische Abschnitte beinhalten, in denen die Durchquerung des Graphen denselben Knoten mehr als einmal besuchen kann. Bei der Erstellung des Graphen darf die Analyseeinheit 100 denselben Knoten nicht zweimal besuchen, da durch die nachfolgenden Besuche nicht notwendigerweise zusätzliche Berechtigungen hinzugefügt werden.As shown in 640, the
In einigen Ausführungsformen kann die Rollenerreichbarkeitsanalyse nicht den gesamten Verlauf der Bedingungen für Tags berücksichtigen, wenn der Übergang für die Rollenübernahme erfolgt. In einigen Ausführungsformen kann die Rollenerreichbarkeitsanalyse einen breiteren Verlauf von Bedingungen für Tags berücksichtigen, z. B. die letzten N Schritte als Verlauf. In einigen Ausführungsformen kann die Rollenerreichbarkeitsanalyse einen breiteren Satz von Pfaden aufzählen. Bei der Rollenerreichbarkeitsanalyse kann beispielsweise eine Technik zur Zusammenführung von Pfaden verwendet werden, um eine exponentielle Anzahl von Pfaden zu kodieren. Durch die Berücksichtigung eines breiteren Tag-Verlaufs und/oder eines breiteren Satzes von Pfaden kann die Analyse mehr Rechenressourcen verbrauchen, aber auch eine höhere Genauigkeit erzielen.In some embodiments, the role reachability analysis may not consider the entire history of conditions for tags when transitioning to assume roles. In some embodiments, the role reachability analysis may consider a broader history of conditions for tags, e.g. B. the last N steps as history. In some embodiments, the role reachability analysis may enumerate a broader set of paths. For example, in role reachability analysis, a path merging technique can be used to encode an exponential number of paths. By considering a broader tag history and/or a broader set of paths, the analysis can consume more computational resources but also achieve higher accuracy.
Wie in 710 gezeigt, kann die Rollenerreichbarkeitsanalyse eine dritte Zugriffssteuerungsrichtlinie bestimmen, die eine Ergänzung einer Rollenübernahmeanfrage für die zweite Rolle autorisiert. Die dritte Zugriffssteuerungsrichtlinie kann alle Handlungen mit Ausnahme der Übernahme der zweiten Rolle erlauben. Die dritte Zugriffssteuerungsrichtlinie kann eine Richtlinienergänzung in Bezug auf die Rollenübernahmeanfrage für die zweite Rolle darstellen. Die dritte Zugriffssteuerungsrichtlinie kann eine Negation einer Rollenübernahmehandlung durch einen Auftraggeber in der ersten Rolle darstellen. Die dritte Zugriffssteuerungsrichtlinie kann als eine negierte Zugriffssteuerungsrichtlinie bezeichnet werden.As shown in 710, the role reachability analysis may determine a third access control policy that authorizes an addition to a role assumption request for the second role. The third access control policy may allow all actions except assuming the second role. The third access control policy may be a policy supplement related to the role assumption request for the second role. The third access control policy may represent a negation of a role assumption action by a principal in the first role. The third access control policy can be referred to as a negated access control policy.
Wie in 720 gezeigt, kann die Rollenerreichbarkeitsanalyse eine Analyse der dritten (negierten) Zugriffssteuerungsrichtlinie in Bezug auf eine Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Tags durchführen. In einigen Ausführungsformen kann die Rollenübernahmerichtlinie für die zweite Rolle erweitert werden, z. B. mit Anweisungen, die alle Anfragen verweigern, die nicht die Bedingungen eines oder mehrerer Tags erfüllen. Die Analyse kann unter Verwendung eines Richtlinienvergleichsdienstes durchgeführt werden, der bestimmt, ob eine Zugriffssteuerungsrichtlinie in Bezug auf eine andere Zugriffssteuerungsrichtlinie zulässiger, weniger zulässig, gleich zulässig oder nicht vergleichbar mit einer anderen Zugriffssteuerungsrichtlinie ist. Da der Raum der Zeichenfolgen für Tags unbegrenzt sein kann (z. B. aufgrund von Platzhaltern), kann die Analyseeinheit einen oder mehrere repräsentative Werte für einen oder mehrere Schlüsselwert-Tags aus einem Bereich potenzieller Werte (einer Äquivalenzklasse) für den/die Tag(s) auswählen. Anhand dieser repräsentativen Werte kann der Zustand des einen oder der mehreren Tags bestimmt werden.As shown in 720, the role reachability analysis may perform an analysis of the third (negated) access control policy relative to a role inheritance policy for the second role for the particular state of the one or more tags. In some embodiments, the role inheritance policy can be extended for the second role, e.g. B. with directives that deny all requests that do not meet the conditions of one or more tags. The analysis may be performed using a policy comparison service that determines whether an access control policy is more acceptable, less acceptable, equally acceptable, or not comparable to another access control policy with respect to another access control policy. Because tag string space may be unbounded (e.g., due to wildcards), the unit of analysis may select one or more representative values for one or more key-value tags from a range of potential values (an equivalence class) for the tag(s)( s) select. Based on these representative values, the status of the one or more tags can be determined.
In einigen Ausführungsformen kann die dritte Zugriffssteuerungsrichtlinie (die die Ergänzung der Rollenübernahmehandlung spezifiziert) die erweiterte Rollenübernahmerichtlinie für die zweite Rolle beinhalten, wenn und nur wenn es keinen Kontext gibt, in dem die Übernahme der zweiten Rolle autorisiert ist. In einigen Ausführungsformen kann die Übernahme der zweiten Rolle durch die erste Rolle autorisiert werden, wenn und nur wenn die dritte Zugriffssteuerungsrichtlinie (die die Ergänzung der Rollenübernahmehandlung spezifiziert) die erweiterte Rollenübernahmerichtlinie für die zweite Rolle nicht beinhaltet. Wenn die dritte Zugriffssteuerungsrichtlinie die erweiterte Rollenübernahmerichtlinie für die zweite Rolle enthält, kann, wie in 730 gezeigt, der Zugriff auf den zweiten Dienst oder die zweite Ressource für einen Auftraggeber in der ersten Rolle verweigert werden. Wenn die dritte Zugriffssteuerungsrichtlinie die erweiterte Rollenübernahmerichtlinie für die zweite Rolle nicht enthält, kann, wie in 740 gezeigt, der Zugriff auf den zweiten Dienst oder die zweite Ressource für einen Auftraggeber in der ersten Rolle gewährt werden.In some embodiments, the third access control policy (specifying the supplementation of the role assumption action) may include the extended role assumption policy for the second role if and only if there is no context in which the assumption of the second role is authorized. In some embodiments, the first role may be authorized to assume the second role if and only if the third access control policy (specifying the supplementation of the role assumption action) does not include the extended role assumption policy for the second role. As shown in 730, if the third access control policy includes the extended role assumption policy for the second role, access to the second service or resource for a principal in the first role may be denied. As shown in 740, if the third access control policy does not include the extended role assumption policy for the second role, access to the second service or resource may be granted to a principal in the first role.
In einigen Ausführungsformen wird der Begriff „Zulässigkeit“ verwendet, um die Gewährung des Zugriffs auf Ressourcen zu beschreiben. Wenn beispielsweise eine erste Richtlinie den Zugriff auf eine erste Rechenressource (z. B. Ressource „A“) und eine zweite Ressource (z. B. Ressource „B“) gewährt und eine zweite Richtlinie den Zugriff nur auf die Rechenressource „B“ gewährt, dann kann die erste Richtlinie als zulässiger als die zweite Richtlinie beschrieben werden, weil es eine Rechenressource gibt, auf die die erste Richtlinie Zugriff gewährt, auf die die zweite Richtlinie keinen Zugriff gewährt, und es keine Ressource gibt, auf die die zweite Richtlinie Zugriff gewährt, auf die die erste Richtlinie keinen Zugriff gewährt. Zwei Richtlinien können äquivalent sein, wenn sie beide den Zugriff auf dieselben Ressourcen gewähren und den Zugriff auf dieselben Ressourcen verweigern (entweder implizit oder explizit). In einigen Fällen kann sich die Äquivalenz auf zwei Richtlinien beziehen, die explizit den Zugriff auf dieselben Ressourcen gewähren und explizit den Zugriff auf dieselben Ressourcen verweigern, z. B. kann eine erste Richtlinie, die explizit den Zugriff auf eine Rechenressource verweigert, und eine zweite Richtlinie, die implizit den Zugriff auf eine Rechenressource verweigert (z. B., indem sie den Zugriff in einem „Default-Deny“-Kontext nicht affirmativ gewährt), in einigen Ausführungsformen nicht äquivalent sein. Wenn zwei Richtlinien nicht äquivalent sind, kann man im Allgemeinen sagen, dass ihnen die Äquivalenz fehlt. Wenn eine erste Richtlinie den Zugriff auf eine erste Rechenressource „A“ und eine zweite Rechenressource „B“ und eine zweite Richtlinie den Zugriff auf die zweite Rechenressource „B“ und eine dritte Rechenressource „C“ gewährt, können die Richtlinien in einigen Fällen als unvergleichbar bezeichnet werden. Es ist anzumerken, dass, sofern nicht anders angegeben, die in dieser Schrift beschriebenen Beispiele ein „Default-Deny“-Sicherheitsmodell implementieren können, bei dem der Zugriff auf eine Rechenressource verweigert wird, wenn keine explizite Gewährung eines Zugriffs auf die Rechenressource vorliegt. Es ist ferner anzumerken, dass im Zusammenhang mit diesen Erörterungen Sicherheitsrichtlinien genutzt werden können, um den Zugriff auf Ressourcen im Kontext eines Anbieters von Rechenressourcen zu gewähren oder zu verweigern, wobei eine Anfrage zum Zugriff auf Ressourcen durch ein Autorisierungsmodul oder einen Autorisierungsdienst unter Verwendung einer auf die Anfrage anwendbaren Sicherheitsrichtlinie bewertet werden kann. Eine anwendbare Sicherheitsrichtlinie kann eine Sicherheitsrichtlinie, die dem Anfragenden zugeordnet ist, eine Sicherheitsrichtlinie, die einem Token zugeordnet ist, das der Anfragende vorlegt, und so weiter sein.In some embodiments, the term "allowance" is used to describe granting access to resources. For example, if a first policy grants access to a first compute resource (e.g. resource "A") and a second resource (e.g. resource "B"), and a second policy grants access only to compute resource "B". , then the first policy can be described as more allowable than the second policy because there is a compute resource that the first policy grants access to that the second policy does not grant access to, and there is no resource that the second policy grants access to granted that the first policy does not grant access to. Two policies can be equivalent if they both grant access to the same resources and deny access to the same resources (either implicitly or explicitly). In some cases, equivalence may refer to two policies that explicitly grant access to the same resources and explicitly deny access to the same resources, e.g. B. A first policy that explicitly denies access to a compute resource and a second policy that implicitly denies access to a compute resource (e.g., by not allowing access in a "default-deny" context affirmatively granted), may not be equivalent in some embodiments. In general, when two policies are not equivalent, they can be said to lack equivalence. When a first policy grants access to a first compute resource "A" and a second compute resource "B" and a second policy grants access to the second compute resource "B" and a third compute resource "C", the policies may in some cases be considered incomparable be designated. It is noted that unless otherwise noted, the examples described in this document may implement a "default-deny" security model in which access to a computing resource is denied if access to the computing resource is not explicitly granted. It should also be noted that in the context of these discussions, security policies may be used to grant or deny access to resources in the context of a computing resource provider, where a request for access to resources is processed by an authorization module or service using an on the request applicable security policy can be assessed. An applicable security policy may be a security policy associated with the supplicant, a security policy associated with a token presented by the supplicant, and so on.
Der Richtlinienvergleichsdienst 180 kann verschiedene Komponenten und/oder Module beinhalten, wie etwa einen Richtlinienparser, einen aussagenlogischen Übersetzer und eine Erfüllbarkeits-Engine. Der Richtlinienparser kann eine Komponente oder ein Modul sein, das eine Sicherheitsrichtlinie empfängt (z. B. eine Sicherheitsrichtlinie, die von einem Client in Verbindung mit einem API-Aufruf empfangen oder über einen Richtlinienmanagementdienst abgerufen wird) und eine oder mehrere Berechtigungsanweisungen aus der Richtlinie abruft. Wenn der Client beispielsweise dem Richtlinienvergleichsdienst 180 eine erste Richtlinie „A“ und eine zweite Richtlinie „B“ zur Verfügung stellt, kann der Richtlinienvergleichsdienst den Richtlinienparser verwenden, um einen ersten Satz von Berechtigungsanweisungen aus Richtlinie „A“ und einen zweiten Satz von Berechtigungsanweisungen aus Richtlinie „B“ zu erhalten. Die Berechtigungsanweisungen können jeweils der Gewährung oder Verweigerung des Zugriffs auf eine Rechenressource zugeordnet sein. Die Berechtigungsanweisungen können in einem konkreten Format wie JSON, Aspen usw. vorliegen.
Wie in dieser Schrift beschrieben, kann sich die Aussagenlogik auf eine symbolische Logik beziehen, die sich auf die Bewertung von Propositionen bezieht, die entweder als wahr oder falsch bewertet werden können. Die Aussagenlogik kann genutzt werden, um die logische Äquivalenz von Aussagenformeln zu bewerten. Eine Aussagenformel kann eine Anweisung sein, die einer Syntax entspricht, die Aussagenvariablen und logische Konnektive beinhaltet, die die Aussagenvariablen verbinden. Beispiele für logische Konnektive oder logische Operatoren können sein: „AND“ (Konjunktion), „OR“ (Disjunktion), „NOT“ (Negation) und „IF AND ONLY IF“ (Bikonditional). Die Aussagenlogik kann in dieser Schrift auch als „Aussagenausdruck“ oder „aussagenlogischer Ausdruck“ bezeichnet werden. In einigen Ausführungsformen kann anstelle der Aussagenlogik die Prädikatenlogik genutzt werden. Prädikatenlogik kann sich auf ein formales System beziehen, das neben der Aussagenlogik auch Quantoren verwendet. Beispiele für Quantoren sind „FOR ALL“ (Universalquantor) und „THERE EXISTS“ (Existenzialquantor). Sofern nicht ausdrücklich vermerkt, können Ausführungsformen dieser Offenbarung, die im Zusammenhang mit der Aussagenlogik beschrieben werden, auch mit der Prädikatenlogik implementiert werden. In einigen Ausführungsformen kann beispielsweise ein Prädikatenlogik-Übersetzer anstelle eines aussagenlogischen Übersetzers verwendet werden, um Berechtigungsanweisungen in Prädikatenlogik-Ausdrücke zu übersetzen, und eine Erfüllbarkeits-Engine kann einen oder mehrere Prädikatenlogik-Ausdrücke auswerten, um zu bestimmen, ob die Ausdrücke äquivalent sind.As described in this paper, propositional logic can refer to symbolic logic related to the evaluation of propositions that can be evaluated as either true or false. Propositional logic can be used to evaluate the logical equivalence of propositional formulas. A propositional formula can be a statement that conforms to a syntax that includes propositional variables and logical connectives that connect the propositional variables. Examples of logical connectives or logical operators can be: "AND" (conjunction), "OR" (disjunction), "NOT" (negation) and "IF AND ONLY IF" (biconditional). In this document, propositional logic can also be referred to as “propositional expression” or “propositional logic expression”. In some embodiments, predicate logic may be used instead of propositional logic. First order logic can refer to a formal system that uses quantifiers in addition to propositional logic. Examples of quantifiers are “FOR ALL” (universal quantifier) and “THERE EXISTS” (existential quantifier). Unless expressly noted, embodiments of this disclosure that are described in the context of propositional logic may also be implemented using predicate logic. For example, in some embodiments, a predicate logic translator may be used instead of a propositional translator to translate authorization statements into predicate logic expressions, and a satisfiability engine may evaluate one or more predicate logic expressions to determine whether the expressions are equivalent.
Berechtigungsanweisungen (z. B. die vom Richtlinienparser erhaltenen) können einem aussagenlogischen Übersetzer bereitgestellt werden. Ein aussagenlogischer Übersetzer kann eine Berechtigungsanweisung (z. B. im JSON-Format) empfangen und die Berechtigungsanweisung in eine oder mehrere Einschränkungen umwandeln, die mit Aussagenlogik beschrieben werden. Die Einschränkungen können in verschiedenen Formaten und nach verschiedenen Standards beschrieben werden, wie etwa SMT-LIB-Standardformate, CVC-Sprache und Formate des Center for Discrete Mathematics and Theoretical Computer Science (DIMACS). Die vom aussagenlogischen Übersetzer erzeugten aussagenlogischen Ausdrücke können einen Satz von Einschränkungen darstellen, die erfüllt sein müssen, damit die entsprechende Berechtigungsanweisung in Kraft tritt. Die Einschränkungen können notwendigerweise erfüllt werden, wenn die vorangehende Berechtigungsanweisung, die den Zugriff auf APIs, die mit „put“ beginnen (z. B. „put-object“), erlaubt, erfüllt ist.Authorization statements (such as those obtained from the policy parser) can be provided to a propositional translator. A propositional translator can receive a permission statement (e.g. in JSON format) and convert the permission statement into one or more constraints described using propositional logic. The constraints can be described in various formats and according to various standards, such as SMT-LIB standard formats, CVC language, and Center for Discrete Mathematics and Theoretical Computer Science (DIMACS) formats. The propositional expressions generated by the propositional translator may represent a set of constraints that must be satisfied for the corresponding authorization statement to take effect. The constraints may necessarily be satisfied if the preceding permission statement allowing access to APIs beginning with "put" (e.g. "put-object") is satisfied.
In einigen Ausführungsformen kann die Analyseeinheit 100 eine webbasierte API-Anfrage an den Richtlinienvergleichsdienst 180 übertragen, die anfordert, dass der Richtlinienvergleichsdienst bestimmt, ob eine erste Sicherheitsrichtlinie (z. B. „Sicherheitsrichtlinie A“) zulässiger ist als die zweite Sicherheitsrichtlinie (z. B. „Sicherheitsrichtlinie B“). Die Sicherheitsrichtlinien können in der Web-API-Anfrage kodiert sein, oder es können Informationen bereitgestellt werden, die zum Abrufen der Sicherheitsrichtlinien verwendet werden können (z. B. ein Zeiger oder ein URI, der den Ort angibt, an dem eine Richtlinie abgerufen werden kann). Der Richtlinienvergleichsdienst 180 kann die Sicherheitsrichtlinien abrufen (z. B. entweder direkt von der Anfrage oder über einen Richtlinienmanagementdienst unter Verwendung eines in der Anfrage kodierten URI) und einen Richtlinienparser nutzen, um einen ersten Satz von Berechtigungsanweisungen aus der ersten Richtlinie und einen zweiten Satz von Berechtigungsanweisungen aus der zweiten Richtlinie abzurufen. Die Richtlinienanweisungen können einem aussagenlogischen Übersetzer bereitgestellt werden, um einen Satz von aussagenlogischen Ausdrücken zu erhalten, die den Einschränkungen entsprechen, die erfüllt sein müssen, damit die entsprechende Richtlinienanweisung in Kraft tritt. Ein erster aussagenlogischer Ausdruck kann aus dem ersten Satz von Richtlinienanweisungen erzeugt werden und ein zweiter aussagenlogischer Ausdruck kann aus dem zweiten Satz von Richtlinienanweisungen erzeugt werden. Die aussagenlogischen Ausdrücke können in einer Sprache ausgedrückt werden, die einer SMT-LIB-Standardsprache wie dem STM-LIB 2.0-Standard entspricht. Eine Erfüllbarkeits-Engine kann verwendet werden, um den ersten aussagenlogischen Ausdruck und den zweiten aussagenlogischen Ausdruck zu vergleichen, um zu bestimmen, ob eine der beiden Aussagenlogiken zulässiger ist als die andere.In some embodiments, the
Eine Erfüllbarkeits-Engine kann verwendet werden, um die Zulässigkeit von zwei oder mehr aussagenlogischen Ausdrücken zu analysieren. Die Erfüllbarkeits-Engine kann aus Hardware, Software oder einer Kombination davon bestehen. In einigen Ausführungsformen erlaubt die Erfüllbarkeits-Engine den Clients (z. B. internen Clients wie dem aussagenlogischen Übersetzer, dem Richtlinienvergleichsdienst 180 usw.) zu bestimmen, ob ein erster aussagenlogischer Ausdruck zulässiger ist als ein zweiter aussagenlogischer Ausdruck. Die Erfüllbarkeits-Engine kann zusätzliche aussagenlogische Einschränkungen als Teil der Bestimmung, ob der erste aussagenlogische Ausdruck zulässiger ist als der zweite aussagenlogische Ausdruck, erzeugen.A satisfiability engine can be used to analyze the feasibility of two or more propositional expressions. The satisfiability engine can be hardware, software, or a combination thereof. In some embodiments, the satisfiability engine allows the clients (e.g., internal clients such as the propositional translator, the
Die Einschränkungen können zusätzlich zu den Einschränkungen des ersten aussagenlogischen Ausdrucks und des zweiten aussagenlogischen Ausdrucks, die auf die oben beschriebene Weise kodiert werden können, erzeugt und bewertet werden. Die Einschränkungen können zumindest teilweise basierend auf den Anfragen eines Clients erzeugt werden. Beispielsweise kann die Erfüllbarkeits-Engine Einschränkungen erzeugen, die nur unter Umständen erfüllt sind, unter denen eine erste Richtlinie den Zugriff auf eine Ressource gewährt und eine zweite Richtlinie den Zugriff auf die Ressource verweigert oder in Bezug auf die Ressource neutral ist, und zwar als Reaktion auf eine Anfrage eines Aufrufers (z. B. des Richtlinienvergleichsdienstes 180), um zu bestimmen, ob ein erster aussagenlogischer Ausdruck zulässiger ist als ein zweiter aussagenlogischer Ausdruck. Eine solche Ausführungsform kann in einem „Default-Deny“-Kontext implementiert werden, in dem ein neutraler Kontext (d. h. ein Kontext, in dem keine Berechtigung explizit den Zugriff auf eine konkrete Ressource gewährt oder verweigert). In einem „Default-Allow“-Kontext kann die Erfüllbarkeits-Engine verschiedene Einschränkungen erzeugen, die erfüllt sind, wenn die erste Richtlinie den Zugriff auf eine Ressource gewährt oder sich neutral gegenüber der Ressource verhält und die zweite Richtlinie den Zugriff auf die Ressource nicht verweigert.The constraints can be generated and evaluated in addition to the constraints of the first propositional expression and the second propositional expression, which can be encoded in the manner described above. The constraints may be generated based at least in part on a client's requests. For example, the satisfiability engine may generate constraints that are satisfied only under circumstances where a first policy grants access to a resource and a second policy denies access to the resource or is neutral with respect to the resource, in response upon a request from a caller (e.g., policy comparison service 180) to determine whether a first propositional expression is more legal than a second propositional expression. Such an embodiment may be implemented in a "default-deny" context, in which a neutral context (ie, a context in which no permission explicitly grants or denies access to a particular resource). In a "default-allow" context, the satisfiability engine can generate various constraints that are satisfied when the first policy grants access to a resource or is neutral towards the resource and the second policy does not deny access to the resource .
Die Erfüllbarkeits-Engine kann verwendet werden, um zu prüfen, ob die aussagenlogischen Einschränkungen (z. B. die aus dem ersten und dem zweiten aussagenlogischen Ausdruck erhaltenen und die von der Erfüllbarkeits-Engine erzeugten) äquivalent sind. In einigen Ausführungsformen kann ein Befehl verwendet werden, um zu bestimmen, ob der Satz von Einschränkungen erfüllbar ist. Eine Formel kann erfüllbar sein, wenn es eine Interpretation gibt, die alle behaupteten Formeln wahr macht. Mit anderen Worten: Das Modell ist erfüllbar, wenn jede der Einschränkungen unter einigen Bedingungen erfüllt ist. In einigen Ausführungsformen kann die Erfüllbarkeits-Engine zumindest teilweise unter Verwendung eines Satisfiability-Modulo-Theories-(SMT-)Constraint-Löser implementiert werden, um zu bestimmen, ob eine Formel erfüllbar ist. Ein Beispiel für einen SMT-basierten Constraint-Löser ist Z3. Andere Arten von Lösern können in Übereinstimmung mit den in dieser Schrift beschriebenen Techniken als Teil der Implementierung einer Erfüllbarkeits-Engine verwendet werden, einschließlich unter anderem SAT-Löser und BDD-Löser. Die Erfüllbarkeits-Engine kann ein Äquivalenzergebnis erzeugen, das angibt, ob die Formel erfüllbar ist und ob zwei oder mehr Richtlinien äquivalent sind. In einigen Ausführungsformen wird ein Äquivalenzergebnis einer anderen Recheneinheit zur Verfügung gestellt, wie etwa der Analyseeinheit 100, die eine Anfrage gestellt hat, einem Systemadministrator und anderen Recheneinheiten.The satisfiability engine can be used to check whether the propositional constraints (e.g. those obtained from the first and second propositional expressions and those generated by the satisfiability engine) are equivalent. In some embodiments, an instruction can be used to determine whether the set of constraints is satisfiable. A formula can be satisfiable if there is an interpretation that makes all the asserted formulas true. In other words, the model is satisfiable if each of the constraints is satisfied under some conditions. In some embodiments, the satisfiability engine may be implemented, at least in part, using a Satisfiability Modulo Theory (SMT) constraint solver to determine whether a formula is satisfiable. An example of an SMT-based constraint solver is Z3. Other types of solvers may be used as part of implementing a satisfiability engine, including but not limited to SAT solvers and BDD solvers, consistent with the techniques described herein. The satisfiability engine can generate an equivalence result indicating whether the formula is satisfiable and whether two or more policies are equivalent. In some embodiments, an equivalence result is provided to another computing device, such as the
In einigen Ausführungsformen kann ein Client, wie etwa die Analyseeinheit 100, im Namen eines Clients eine Anfrage stellen, um die Äquivalenz zwischen zwei Sicherheitsrichtlinien zu bestimmen. In einigen Ausführungsformen kann die Anfrage eine Web-API-Anfrage beinhalten, die die Sicherheitsrichtlinien kodiert, die als Teil der Anfrage analysiert werden sollen. In einigen Ausführungsformen kann die Sicherheits-Client-Rechenvorrichtung jedoch einen Verweis auf eine oder mehrere Sicherheitsrichtlinien bereitstellen, die der Empfänger der Anfrage verwenden kann, um die eine oder die mehreren Sicherheitsrichtlinien zu erhalten. In einigen Ausführungsformen wird eine Web-API-Anfrage von der Analyseeinheit 100 an einen Rechenressourcendienstanbieter wie das Anbieternetzwerk 190 übertragen. Die Anfrage kann von einem Richtlinienvergleichsdienst 180 erfüllt werden. Eine erste Sicherheitsrichtlinie 804A kann geparst werden, um eine oder mehrere Berechtigungsanweisungen 806A zu erhalten, und die Berechtigungsanweisungen 806A können in einen ersten Satz von aussagenlogischen Ausdrücken 808 übersetzt werden, die als Einschränkungen für eine aussagenlogische Formel dienen können. Ebenso kann eine zweite Sicherheitsrichtlinie 804B geparst werden, um eine oder mehrere Berechtigungsanweisungen 806B zu erhalten, und die Berechtigungsanweisung 806B kann geparst werden, um einen zweiten Satz aussagenlogischer Ausdrücke 808 zu erhalten, die als Einschränkungen dienen können. Der Dienst 180 kann eine Erfüllbarkeits-Engine 812 nutzen, um zu bestimmen, ob die zwei aussagenlogischen Ausdrücke äquivalent sind, ob einer der beiden Ausdrücke zulässiger ist als der andere, und vieles mehr.In some embodiments, a client, such as
In einigen Ausführungsformen kann ein Äquivalenzergebnis 812 angeben, dass zwei Richtlinien äquivalent sind. Zwei Richtlinien können als äquivalent bezeichnet werden, wenn die Sicherheitsberechtigungen der ersten Richtlinie und der zweiten Richtlinie in gleicher Weise für alle Handlungen, Ressourcen und Auftraggeber gelten, sodass für einen beliebigen Satz von Handlungen, Ressourcen und Auftraggebern sowohl die erste Richtlinie als auch die zweite Richtlinie entweder den Zugriff verweigern (entweder explizit basierend auf einer Verweigerungsanweisung oder implizit basierend auf dem Fehlen einer den Zugriff gewährenden Berechtigung) oder beide den Zugriff gewähren. In einigen Ausführungsformen ist es nicht der Fall, dass eine Richtlinie den Zugriff gewährt und die andere den Zugriff verweigert. In einigen Fällen, in denen eine Richtlinie als zulässiger als eine andere Richtlinie bestimmt wird, gewährt eine Richtlinie den Zugriff auf einen Satz von Parametern, während eine andere Richtlinie den Zugriff verweigert.In some embodiments, an equivalence result 812 may indicate that two policies are equivalent. Two policies can be said to be equivalent if the security permissions of the first policy and the second policy apply equally to all actions, resources, and principals, such that for any set of actions, resources, and principals, both the first policy and the second policy either deny access (either explicitly based on a deny statement or implicitly based on the lack of a permission granting access) or both grant access. In some embodiments, it is not the case that one policy grants access and the other denies access. In some cases where a policy is determined to be more allowable than another policy, one policy grants access to a set of parameters while another policy denies access.
In einigen Ausführungsformen kann das Äquivalenzergebnis 812 als Antwort auf eine Web-API-Anfrage an die Analyseeinheit 100 übertragen werden. In einigen Ausführungsformen kann das Äquivalenzergebnis 812 das Zulässigkeitsergebnis kodieren (z. B., ob eine Richtlinie zulässiger war als eine zweite Richtlinie). In einigen Ausführungsformen werden andere Informationen entweder anstelle des Zulässigkeitsergebnisses oder zusätzlich zu diesem bereitgestellt. In dem Fall, in dem eine erste Richtlinie zulässiger ist als eine zweite Richtlinie, kann das Äquivalenzergebnis 812 beispielsweise einen Satz von Parametern kodieren, der zu einer Gewährung des Zugriffs durch die erste Richtlinie und einer Verweigerung des Zugriffs durch die zweite Richtlinie führt (z. B. können ein Auftraggeber, eine Ressource und eine Handlung in der Antwort so kodiert werden, dass eine erste Richtlinie dem Auftraggeber den Zugriff gewährt, um die Handlung an der Ressource durchzuführen, und die zweite Richtlinie dem Auftraggeber den Zugriff verweigert, um die Handlung an der Ressource durchzuführen).In some embodiments, the equivalence result 812 may be transmitted to the
Veranschaulichendes ComputersystemIllustrative Computer System
In mindestens einigen Ausführungsformen kann ein Computersystem, das einen Teil oder die Gesamtheit einer oder mehrerer der in dieser Schrift beschriebenen Technologien implementiert, ein Computersystem beinhalten, das ein oder mehrere computerlesbare Medien beinhaltet oder dazu konfiguriert ist, darauf zuzugreifen.
In verschiedenen Ausführungsformen kann es sich bei der Rechenvorrichtung 900 um ein Uniprozessor-System, das einen Prozessor beinhaltet, oder ein Multiprozessor-System handeln, das mehrere Prozessoren 910A-910N (z. B. zwei, vier, acht oder eine andere geeignete Anzahl an Prozessoren) beinhaltet. Bei den Prozessoren 910A-910N kann es sich um beliebige geeignete Prozessoren handeln, die in der Lage sind, Anweisungen auszuführen. Beispielsweise kann es sich in verschiedenen Ausführungsformen bei den Prozessoren 910A-910N um Prozessoren handeln, die beliebige einer Vielzahl von Befehlssatzarchitekturen (instruction set architectures - ISAs) implementieren, wie etwa x86, PowerPC, SPARC oder MIPS ISAs oder eine beliebige andere geeignete ISA. In Multiprozessor-Systemen kann jeder der Prozessoren 910A-910N gemeinsam, jedoch nicht notwendigerweise dieselbe, ISA implementieren.In various embodiments,
Der Systemspeicher 920 kann dazu konfiguriert sein, Programmanweisungen und durch den/die Prozessoren) 910A-910N zugängliche Daten zu speichern. In verschiedenen Ausführungsformen kann der Systemspeicher 920 unter Verwendung einer beliebigen geeigneten Speichertechnologie implementiert werden, wie etwa unter Verwendung von statischem Direktzugriffsspeicher (static random access memory - SRAM), synchronem dynamischem RAM (synchronous dynamic RAM - SDRAM), nichtflüchtigem/Flash-Speicher oder einer beliebigen anderen Art von Speicher. In der veranschaulichten Ausführungsform sind Programmanweisungen und Daten, die eine oder mehrere erwünschte Funktionen implementieren, wie die oben beschriebenen Verfahren, Techniken und Daten, in dem Systemspeicher 920 als Code (d. h. Programmanweisungen) 925 und Daten 926 gespeichert gezeigt. In der veranschaulichten Ausführungsform speichert der Systemspeicher 920 auch Programmcode und Daten, die die oben erörterten Aspekte der Zugriffssteuerungsanalyseeinheit 100 implementieren.System memory 920 may be configured to store program instructions and data accessible by processor(s) 910A-910N. In various embodiments, system memory 920 may be implemented using any suitable memory technology, such as using static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile/flash memory, or a any other type of storage. In the illustrated embodiment, program instructions and data that implement one or more desired functions, such as the methods, techniques, and data described above, are shown stored in system memory 920 as code (i.e., program instructions) 925 and
In einer Ausführungsform kann die E/A-Schnittstelle 930 dazu konfiguriert sein, E/A-Verkehr zwischen den Prozessoren 910A-910N, dem Systemspeicher 920 und beliebigen Peripherievorrichtungen in der Vorrichtung zu koordinieren, einschließlich der Netzwerkschnittstelle 940 oder anderer Peripherieschnittstellen. In einigen Ausführungsformen kann die E/A-Schnittstelle 930 ein beliebiges erforderliches Protokoll, eine beliebige erforderliche Zeitgebung oder andere Datenumwandlungen durchführen, um Datensignale von einer Komponente (z. B. dem Systemspeicher 920) in ein zur Verwendung durch eine andere Komponente (z. B. die Prozessoren 910A-910N) geeignetes Format zu konvertieren. In einigen Ausführungsformen kann die E/A-Schnittstelle 930 Unterstützung von Vorrichtungen beinhalten, die über verschiedene Arten von Peripheriebussen verbunden sind, wie etwa eine Variation des Peripheral-Component-Interconnect-(PCI-)Busstandards oder des Universal-Serial-Bus-(USB-)Standards usw. In einigen Ausführungsformen kann die Funktion der E/A-Schnittstelle 930 in zwei oder mehr getrennte Komponenten aufgeteilt sein, wie etwa eine North Bridge und eine South Bridge usw. In einigen Ausführungsformen können außerdem einige oder alle der Funktionen der E/A-Schnittstelle 930, wie etwa eine Schnittstelle mit dem Systemspeicher 920, direkt in die Prozessoren 910A-910N integriert sein.In one embodiment, I/
Die Netzwerkschnittstelle 940 kann dazu konfiguriert sein, den Datenaustausch zwischen der Rechenvorrichtung 900 und anderen Vorrichtungen 960 zu ermöglichen, die an ein Netzwerk oder Netzwerke 950 angeschlossen sind. In verschiedenen Ausführungsformen kann die Netzwerkschnittstelle 940 eine Kommunikation über beliebige geeignete drahtgebundene oder drahtlose allgemeine Datennetzwerke unterstützen, wie etwa Arten eines Ethernet-Netzwerks usw. Des Weiteren kann die Netzwerkschnittstelle 940 eine Kommunikation über Telekommunikations-/Telefonienetzwerke, wie etwa analoge Sprachnetzwerke oder digitale Glasfaserkommunikationsnetzwerke, über Speicherbereichsnetzwerke, wie etwa Fibre-Channel-SANs, oder über eine beliebige andere geeignete Art von Netzwerk und/oder Protokoll unterstützen.The
In einigen Ausführungsformen kann es sich bei dem Systemspeicher 920 um eine Ausführungsform eines computerlesbaren (d. h. computerzugänglichen) Mediums handeln, das dazu konfiguriert ist, Programmanweisungen und Daten wie oben beschrieben zum Implementieren von Ausführungsformen der entsprechenden Verfahren und Einrichtungen zu speichern. Der Systemspeicher 920 kann zum Beispiel Programmcode und Daten speichern, die der Zugriffssteuerungsanalyseeinheit 100 zugeordnet sind. In einigen Ausführungsformen können die Programmanweisungen und/oder Daten von anderen Arten von computerlesbaren Medien empfangen, gesendet oder gespeichert werden. Allgemein ausgedrückt kann ein computerlesbares Medium nichttransitorische Speichermedien oder Datenspeichermedien beinhalten, wie etwa magnetische oder optische Medien, z. B. eine Diskette oder DVD/CD, die über die E/A-Schnittstelle 930 an die Rechenvorrichtung 900 gekoppelt sind. Ein nichttransitorisches computerlesbares Speichermedium kann außerdem beliebige flüchtige oder nichtflüchtige Medien beinhalten, wie etwa RAM (z. B. SDRAM, DDR SDRAM, RDRAM, SRAM usw.), ROM usw., die in einigen Ausführungsformen der Rechenvorrichtung 900 als Systemspeicher 920 oder einer anderen Art von Speicher beinhaltet sein können. Ferner kann ein computerlesbares Medium Übertragungsmedien oder -signale beinhalten, wie etwa elektrische, elektromagnetische oder digitale Signale, die über ein Kommunikationsmedium übermittelt werden, wie etwa ein Netzwerk und/oder eine drahtlose Verbindung, wie sie über die Netzwerkschnittstelle 940 implementiert werden können. Teile oder die Gesamtheit mehrerer Rechenvorrichtungen, wie in
Die verschiedenen Verfahren, wie in den Figuren veranschaulicht und in dieser Schrift beschrieben, stellen beispielhafte Ausführungsformen von Verfahren dar. Die Verfahren können in Software, Hardware oder einer Kombination davon implementiert sein. Bei verschiedenen der Verfahren kann die Reihenfolge der Schritte geändert werden, und verschiedene Elemente können hinzugefügt, neu geordnet, kombiniert, weggelassen, modifiziert usw. werden. Verschiedene der Schritte können automatisch (z. B. ohne direkte Aufforderung durch Benutzereingaben) und/oder programmgesteuert (z. B. gemäß Programmanweisungen) durchgeführt werden.The various methods as illustrated in the figures and described throughout this document represent example method embodiments. The methods may be implemented in software, hardware, or a combination thereof. In various of the methods, the order of the steps may be changed, and various elements may be added, reordered, combined, omitted, modified, and so on. Various of the steps may be performed automatically (e.g., without being directly prompted by user input) and/or programmatically (e.g., according to program instructions).
Die in der Beschreibung der vorliegenden Erfindung verwendete Terminologie dient allein dem Zwecke der Beschreibung konkreter Ausführungsformen und soll die Erfindung nicht eingrenzen. Die Singularformen „ein“, „eine“ und „die/der/das“, wie in der Beschreibung der Erfindung und den beigefügten Ansprüchen verwendet, sollen auch die Pluralformen beinhalten, sofern der Kontext nicht eindeutig etwas anderes vorgibt. Es versteht sich auch, dass der Begriff „und/oder“, wie er in dieser Schrift verwendet wird, alle möglichen Kombinationen von einem oder mehreren der aufgeführten Punkte einschließt. Es versteht sich ferner, dass die Begriffe „beinhaltet“, „beinhaltend“, „umfasst“ und/oder „umfassend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein genannter Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente und/oder Komponente angeben, aber nicht das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließt.The terminology used in the description of the present invention is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular forms "a", "an" and "the" as used in the description of the invention and the appended claims are intended to include the plural forms as well, unless the context clearly dictates otherwise. It is also understood that the term "and/or" as used in this specification includes all possible combinations of one or more of the listed items. It is further understood that the terms "includes," "including," "includes," and/or "comprising" when used in this specification imply the presence of specified features, integers, steps, acts, elements, and/or Identify component, but does not exclude the presence or addition of any other feature, integer, step, operation, element, component and/or group thereof.
Im vorliegenden Zusammenhang kann der Begriff „falls“ je nach Kontext als „wenn“ oder „bei“ oder „als Reaktion auf das Bestimmen“ oder „als Reaktion auf das Detektieren“ verstanden werden. Gleichermaßen kann die Formulierung „wenn bestimmt wird“ oder „wenn [ein angegebener Zustand oder ein angegebenes Ereignis] detektiert wird“ je nach Kontext so ausgelegt werden, dass sie „beim Bestimmen“ oder „als Reaktion auf das Bestimmen“ oder „beim Detektieren [des angegebenen Zustands oder Ereignisses]“ oder „als Reaktion auf das Detektieren [des angegebenen Zustands oder Ereignisses]“ bedeutet.As used herein, the term "if" may be understood as "when" or "at" or "in response to determining" or "in response to detecting" depending on the context. Likewise, the phrase "when determined" or "when [a specified condition or event] is detected" may be construed to mean "when determined" or "in response to the determining" or "when detecting [ of the specified condition or event]" or "in response to detecting [the specified condition or event]".
Es versteht sich außerdem, dass, wenngleich die Begriffe „erste“, „zweite“ usw. in dieser Schrift verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente nicht durch diese Begriffe eingeschränkt sein sollen. Diese Begriffe werden lediglich verwendet, um ein Element von einem anderen abzugrenzen. Beispielsweise könnte ein erster Kontakt als ein zweiter Kontakt bezeichnet sein, und gleichermaßen könnte ein zweiter Kontakt als ein erster Kontakt bezeichnet sein, ohne vom Geltungsbereich der vorliegenden Verbindung abzuweichen. Der erste Kontakt und der zweite Kontakt sind zwar beide Kontakte, aber sie sind nicht derselbe Kontakt.It is also understood that while the terms "first,""second," etc. can be used throughout this specification to describe various elements, these elements are not intended to be limited by those terms. These terms are only used to distinguish one element from another. For example, a first contact could be referred to as a second contact, and similarly a second contact could be referred to as a first contact without departing from the scope of the present invention. The first contact and the second contact are both contacts, but they are not the same contact.
Zum besseren Verständnis des beanspruchten Gegenstands sind in dieser Schrift zahlreiche spezifische Einzelheiten aufgeführt. Ein Fachmann wird jedoch verstehen, dass der beanspruchte Gegenstand ohne diese spezifischen Details umgesetzt werden kann. In anderen Fällen wurden Verfahren, Einrichtungen oder Systeme, die einem normalen Fachmann bekannt sind, nicht im Detail beschrieben, um den beanspruchten Gegenstand nicht zu verdecken. Verschiedene Modifikationen und Änderungen können vorgenommen werden, wie es einem Fachmann ersichtlich ist, dem diese Offenbarung zu Nutzen ist. Es ist vorgesehen, dass alle solche Modifikationen und Änderungen in dieser Schrift umfasst sind und die vorstehende Beschreibung dementsprechend im veranschaulichenden und nicht im einschränkenden Sinne anzusehen ist.Numerous specific details are set forth throughout this document to aid in understanding the claimed subject matter. However, one skilled in the art will understand that the claimed subject matter may be practiced without these specific details. In other instances, methods, devices, or systems well known to those of ordinary skill in the art have not been described in detail so as not to obscure the claimed subject matter. Various modifications and changes can be made as will become apparent to those skilled in the art having the benefit of this disclosure. It is intended that all such modifications and changes are included in this specification and, accordingly, the foregoing description is to be regarded in an illustrative rather than a restrictive sense.
Die vorstehenden Ausführungen lassen sich unter Bezugnahme auf die folgenden Sätze besser verstehen:
- Satz 1. System, umfassend:
- eine Zugriffssteuerungsanalyseeinheit, die einen oder mehrere Prozessoren und einen oder mehrere Speicher zum Speichern von computerausführbaren Anweisungen umfasst, die bei Ausführung den einen oder die mehreren Prozessoren zu Folgendem veranlassen:
- Bestimmen eines Graphen, der eine Vielzahl von Knoten und eine oder mehrere gerichtete Kanten umfasst, wobei die Knoten eine Vielzahl von Rollen in einem Anbieternetzwerk darstellen, das eine Vielzahl von Diensten und Ressourcen beherbergt, wobei die Knoten einen ersten Knoten, der eine erste Rolle darstellt, und einen zweiten Knoten, der eine zweite Rolle darstellt, umfassen, wobei die Rollen einer Vielzahl von Zugriffssteuerungsrichtlinien zugeordnet sind, die den Zugriff auf einzelne der Vielzahl von Diensten und Ressourcen gewähren oder verweigern, und wobei eine oder mehrere der Zugriffssteuerungsrichtlinien den Zugriff zumindest teilweise basierend auf einem oder mehreren Schlüsselwert-Tags gewähren oder verweigern; und
- Bestimmen, zumindest teilweise basierend auf einer Rollenerreichbarkeitsanalyse des Graphen, ob die erste Rolle die zweite Rolle unter Verwendung eines oder mehrerer Rollenübernahmeschritte für einen konkreten Zustand des einen oder der mehreren Schlüsselwert-Tags übernehmen kann, wobei ein einzelner der Rollenübernahmeschritte einen temporären Zugriff während einer Rollensitzung bereitstellt und wobei das eine oder die mehreren Schlüsselwert-Tags ein oder mehrere transitive Tags umfassen, die während des einen oder der mehreren Rollenübernahmeschritte bestehen bleiben.
- eine Zugriffssteuerungsanalyseeinheit, die einen oder mehrere Prozessoren und einen oder mehrere Speicher zum Speichern von computerausführbaren Anweisungen umfasst, die bei Ausführung den einen oder die mehreren Prozessoren zu Folgendem veranlassen:
- Satz 2. System nach Satz 1, wobei die Zugriffssteuerungsrichtlinien es der ersten Rolle erlauben, die zweite Rolle zu übernehmen, wenn die erste Rolle ein Sitzungs-Tag bereitstellt, das mit einer Bedingung übereinstimmt, die der zweiten Rolle zugeordnet ist.
- Satz 3. System nach Satz 2, wobei die Bedingung, die der zweiten Rolle zugeordnet ist, einen oder mehrere Platzhalter für einen Wert eines Schlüssels umfasst.
- Satz 4. System nach einem der Sätze 1-2, wobei der Graph bestimmt wird, indem ein oder mehrere Nachbarn für einen konkreten Knoten in dem Graphen zumindest teilweise basierend auf einem Satz der Schlüsselwert-Tags festgestellt werden, deren Schlüssel explizit mit entsprechenden Bedingungen in den Zugriffssteuerungsrichtlinien angegeben sind, oder durch unterspezifizierte Schlüsselwert-Tags, deren Werte uneingeschränkt oder teilweise eingeschränkt sind.
- Satz 5. Verfahren, umfassend:
- Bestimmen, durch eine Zugriffssteuerungsanalyseeinheit, eines Graphen, der eine Vielzahl von Knoten und eine oder mehrere Kanten umfasst, wobei die Knoten eine Vielzahl von Rollen in einem Anbieternetzwerk darstellen, das eine Vielzahl von Ressourcen beherbergt, wobei die Knoten einen ersten Knoten, der eine erste Rolle darstellt, und einen zweiten Knoten, der eine zweite Rolle darstellt, umfassen, wobei die Rollen einer Vielzahl von Zugriffssteuerungsrichtlinien zugeordnet sind, die den Zugriff auf einzelne der Vielzahl von Ressourcen gewähren oder verweigern, und wobei eine oder mehrere der Zugriffssteuerungsrichtlinien den Zugriff zumindest teilweise basierend auf einem oder mehreren Attributen gewähren oder verweigern; und
- Bestimmen, durch die Zugriffssteuerungsanalyseeinheit zumindest teilweise basierend auf einer Rollenerreichbarkeitsanalyse des Graphen, ob die erste Rolle die zweite Rolle unter Verwendung eines oder mehrerer Rollenübernahmeschritte für einen konkreten Zustand des einen oder der mehreren Attribute übernehmen kann, und wobei das eine oder die mehreren Attribute ein oder mehrere transitive Attribute umfassen, die während des einen oder der mehreren Rollenübernahmeschritte bestehen bleiben.
- Satz 6. Verfahren nach Satz 5, wobei die Zugriffssteuerungsrichtlinien es der ersten Rolle erlauben, die zweite Rolle zu übernehmen, wenn die erste Rolle ein Sitzungsattribut bereitstellt, das mit einer Bedingung übereinstimmt, die der zweiten Rolle zugeordnet ist.
- Satz 7. Verfahren nach Satz 6, wobei die Bedingung, die der zweiten Rolle zugeordnet ist, einen oder mehrere Platzhalter für einen Wert eines Schlüssels umfasst.
- Satz 8. Verfahren nach einem der Sätze 5-7, ferner umfassend:
- Aggregieren einer oder mehrerer Randbedingungen für das eine oder die mehreren Attribute, wobei die eine oder die mehreren Randbedingungen durch eine oder mehrere der Zugriffssteuerungsrichtlinien angegeben werden, die dem einen oder den mehreren Rollenübernahmeschritten zugeordnet sind.
- Satz 9. Verfahren nach einem der Sätze 5-8, wobei ein oder mehrere Nachbarn für einen konkreten Knoten in dem Graphen zumindest teilweise basierend auf einem Satz der Attribute bestimmt werden, deren Schlüssel explizit mit entsprechenden Bedingungen in den Zugriffssteuerungsrichtlinien angegeben sind.
- Satz 10. Verfahren nach einem der Sätze 5-9, wobei ein oder mehrere Nachbarn für einen konkreten Knoten in dem Graphen zumindest teilweise basierend auf unterspezifizierten Attributen bestimmt werden, deren Werte uneingeschränkt oder teilweise eingeschränkt sind.
- Satz 11. Verfahren nach einem der Sätze 5-10, wobei die erste Rolle in einem ersten Konto bei dem Anbieternetzwerk ist und wobei die zweite Rolle in einem zweiten Konto bei dem Anbieternetzwerk ist.
- Satz 12. Verfahren nach einem der Sätze 5-11, ferner umfassend:
- zumindest teilweise basierend auf dem Bestimmen, dass die erste Rolle die zweite Rolle übernehmen kann, Erzeugen einer Benachrichtigung über einen Sicherheitsbefund in Bezug auf eine Konfiguration der Zugriffssteuerungsrichtlinien.
- Satz 13. Ein oder mehrere nichttransitorische computerlesbare Speichermedien, auf denen Programmanweisungen gespeichert sind, die bei Ausführung auf einem oder mehreren oder über einen oder mehrere Prozessoren Folgendes durchführen:
- Bestimmen, durch eine Zugriffssteuerungsanalyseeinheit, eines Graphen, der eine Vielzahl von Knoten und eine oder mehrere Kanten umfasst, wobei die Knoten eine Vielzahl von Rollen in einem Anbieternetzwerk darstellen, das eine Vielzahl von Diensten oder Ressourcen beherbergt, wobei die Knoten einen ersten Knoten, der eine erste Rolle darstellt, und einen zweiten Knoten, der eine zweite Rolle darstellt, umfassen, wobei die Rollen einer Vielzahl von Zugriffssteuerungsrichtlinien zugeordnet sind, die den Zugriff auf einzelne der Vielzahl von Diensten oder Ressourcen gewähren oder verweigern, und wobei eine oder mehrere der Zugriffssteuerungsrichtlinien den Zugriff zumindest teilweise basierend auf einem oder mehreren Tags gewähren oder verweigern; und
- Bestimmen, durch die Zugriffssteuerungsanalyseeinheit zumindest teilweise basierend auf einer Rollenerreichbarkeitsanalyse des Graphen, ob die erste Rolle die zweite Rolle unter Verwendung eines oder mehrerer Rollenübernahmeschritte für einen konkreten Zustand des einen oder der mehreren Tags übernehmen kann, und wobei das eine oder die mehreren Tags ein oder mehrere transitive Tags umfassen, die während des einen oder der mehreren Rollenübernahmeschritte bestehen bleiben.
- Satz 14. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach Satz 13, wobei die Zugriffssteuerungsrichtlinien es der ersten Rolle erlauben, die zweite Rolle zu übernehmen, wenn die erste Rolle ein Sitzungs-Tag bereitstellt, das mit einer Bedingung übereinstimmt, die der zweiten Rolle zugeordnet ist.
- Satz 15. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach Satz 14, wobei die Bedingung, die der zweiten Rolle zugeordnet ist, nicht einen oder mehrere Platzhalter für einen Wert für einen Schlüssel umfasst.
- Satz 16. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 13-15, ferner umfassend zusätzliche Programmanweisungen, die bei Ausführung auf dem einen oder den mehreren oder über den einen oder die mehreren Prozessoren Folgendes durchführen:
- Aggregieren einer oder mehrerer Randbedingungen für das eine oder die mehreren Attribute, wobei die eine oder die mehreren Randbedingungen durch eine oder mehrere der Zugriffssteuerungsrichtlinien angegeben werden, die dem einen oder den mehreren Rollenübernahmeschritten zugeordnet sind.
- Satz 17. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 13-16, wobei der Graph zumindest teilweise basierend auf einem oder mehreren der Tags bestimmt wird, die Schlüssel aufweisen, die explizit in den Zugriffssteuerungsrichtlinien angegeben sind.
- Satz 18. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 13-17, wobei der Graph zumindest teilweise basierend auf der Anwendung einer oder mehrerer Randbedingungen für das eine oder die mehreren Tags bestimmt wird, wobei die eine oder die mehreren Randbedingungen durch eine oder mehrere der Zugriffssteuerungsrichtlinien angegeben werden, die dem einen oder den mehreren Rollenübernahmeschritten zugeordnet sind.
- Satz 19. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 13-18, ferner umfassend zusätzliche Programmanweisungen, die bei Ausführung auf dem einen oder den mehreren oder über den einen oder die mehreren Prozessoren Folgendes durchführen:
- Überwachen von Aufrufen an die Vielzahl von Diensten in dem Anbieternetzwerk; und wenn bestimmt wird, dass die Aufrufe einen Zustand des Anbieternetzwerks verändern, Neustarten der Rollenerreichbarkeitsanalyse.
- Satz 20. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 13-19, wobei der Graph unter Verwendung eines Richtlinienvergleichsdienstes bestimmt wird, der einen semantischen Unterschied zwischen zwei der Zugriffssteuerungsrichtlinien bestimmt.
- Satz 21. System, umfassend:
- eine Zugriffssteuerungsanalyseeinheit, die einen oder mehrere Prozessoren und einen oder mehrere Speicher zum Speichern von computerausführbaren Anweisungen umfasst, die bei Ausführung den einen oder die mehreren Prozessoren zu Folgendem veranlassen:
- Bestimmen eines ersten Knotens in einem Graphen, wobei der erste Knoten einer ersten Rolle in einem Anbieternetzwerk entspricht, das eine Vielzahl von Diensten und Ressourcen beherbergt, wobei die erste Rolle einer ersten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die erste Zugriffssteuerungsrichtlinie den Zugriff auf eine(n) erste(n) der Dienste und Ressourcen gewährt oder verweigert;
- Bestimmen eines zweiten Knotens in dem Graphen, wobei der zweite Knoten einer zweiten Rolle in dem Anbieternetzwerk entspricht, wobei die zweite Rolle einer zweiten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die zweite Zugriffssteuerungsrichtlinie den Zugriff auf eine(n) zweite(n) der Dienste und Ressourcen gewährt oder verweigert;
- Durchführen einer Rollenerreichbarkeitsanalyse, die bestimmt, ob die erste Rolle die zweite Rolle für einen konkreten Zustand eines oder mehrerer Schlüsselwert-Tags übernehmen kann, wobei der eine oder die mehreren Rollenübernahmeschritte temporären Zugriff während einer Rollensitzung bereitstellen, wobei die Rollenerreichbarkeitsanalyse eine dritte Zugriffssteuerungsrichtlinie bestimmt, die eine Ergänzung einer Rollenübernahmeanfrage für die zweite Rolle autorisiert, wobei die Rollenerreichbarkeitsanalyse bestimmt, ob die erste Rolle die zweite Rolle übernehmen kann, und zwar zumindest teilweise basierend auf einer Analyse der dritten Zugriffssteuerungsrichtlinie in Bezug auf eine Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Schlüsselwert-Tags, und wobei die Rollenübernahmeanfrage nicht autorisiert ist, wenn die dritte Zugriffssteuerungsrichtlinie nicht die Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Schlüsselwert-Tags beinhaltet; und
- zumindest teilweise basierend auf der Rollenerreichbarkeitsanalyse, Gewähren oder Verweigern des Zugriffs auf den/die zweite(n) der Dienste und Ressourcen für einen Auftraggeber in der erste Rolle.
- eine Zugriffssteuerungsanalyseeinheit, die einen oder mehrere Prozessoren und einen oder mehrere Speicher zum Speichern von computerausführbaren Anweisungen umfasst, die bei Ausführung den einen oder die mehreren Prozessoren zu Folgendem veranlassen:
- Satz 22. System nach Satz 21, wobei die Rollenübernahmerichtlinie für die zweite Rolle so erweitert wird, dass sie eine oder mehrere Anweisungen beinhaltet, die Anfragen ablehnen, die eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle nicht erfüllen.
- Satz 23. System nach einem der Sätze 21-22, wobei eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle einen oder mehrere Platzhalter für das eine oder die mehreren Schlüsselwert-Tags umfassen.
- Satz 24. System nach Satz 23, wobei die Rollenerreichbarkeitsanalyse einen oder mehrere repräsentative Werte für das eine oder die mehreren Schlüsselwert-Tags aus einem Bereich potenzieller Werte für das eine oder die mehreren Schlüsselwert-Tags auswählt, wobei der Bereich potenzieller Werte zumindest teilweise basierend auf dem einen oder den mehreren Platzhaltern bestimmt wird und wobei der konkrete Zustand des einen oder der mehreren Schlüsselwert-Tags zumindest teilweise basierend auf dem einen oder den mehreren repräsentativen Werten für das eine oder die mehreren Schlüsselwert-Tags bestimmt wird.
- Satz 25. Verfahren, umfassend:
- Bestimmen, durch eine Zugriffssteuerungsanalyseeinheit, eines ersten Knotens in einem Graphen, wobei der erste Knoten einer ersten Rolle in einem Anbieternetzwerk entspricht, das eine Vielzahl von Ressourcen beherbergt, wobei die erste Rolle einer ersten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die erste Zugriffssteuerungsrichtlinie den Zugriff auf eine oder mehrere erste der Ressourcen gewährt oder verweigert;
- Bestimmen, durch die Zugriffssteuerungsanalyseeinheit, eines zweiten Knotens in dem Graphen, wobei der zweite Knoten einer zweiten Rolle in dem Anbieternetzwerk entspricht, wobei die zweite Rolle einer zweiten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die zweite Zugriffssteuerungsrichtlinie den Zugriff auf eine oder mehrere zweite der Ressourcen gewährt oder verweigert;
- Durchführen, durch die Zugriffssteuerungsanalyseeinheit, einer Rollenerreichbarkeitsanalyse, die bestimmt, ob die erste Rolle die zweite Rolle für einen konkreten Zustand von einem oder mehreren Attributen übernehmen kann, wobei die Rollenerreichbarkeitsanalyse Folgendes umfasst:
- Bestimmen einer dritten Zugriffssteuerungsrichtlinie, die eine Negation einer Rollenübernahmeanfrage für die zweite Rolle autorisiert; und
- Bestimmen, ob die erste Rolle die zweite Rolle übernehmen kann, zumindest teilweise basierend auf der Analyse der dritten Zugriffssteuerungsrichtlinie in Bezug auf eine Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Attribute.
- Satz 26. Verfahren nach Satz 25, ferner umfassend:
- zumindest teilweise basierend auf der Rollenerreichbarkeitsanalyse, Gewähren oder Verweigern des Zugriffs auf die zweite der Ressourcen für einen Auftraggeber in der erste Rolle.
- Satz 27. Verfahren nach einem der Sätze 25-26, wobei die Rollenübernahmerichtlinie für die zweite Rolle so erweitert wird, dass sie eine oder mehrere Anweisungen beinhaltet, die Anfragen ablehnen, die eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle nicht erfüllen.
- Satz 28. Verfahren nach einem der Sätze 25-27, wobei die Rollenübernahmeanfrage nicht autorisiert wird, wenn die dritte Zugriffssteuerungsrichtlinie nicht die Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Attribute umfasst.
- Satz 29. Verfahren nach einem der Sätze 25-28, wobei die Rollenerreichbarkeitsanalyse einen Richtlinienvergleichsdienst aufruft, der ein Äquivalenzergebnis für die dritte Zugriffssteuerungsrichtlinie und die Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Attribute bestimmt.
- Satz 30. Verfahren nach einem der Sätze 25-29, wobei eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle einen oder mehrere Platzhalter für das eine oder die mehreren Attribute umfassen.
- Satz 31. Verfahren nach Satz 30, wobei das Durchführen der Rollenerreichbarkeitsanalyse ferner Folgendes umfasst:
- Auswählen eines oder mehrerer repräsentativer Werte für das eine oder die mehreren Attribute aus einem Bereich potenzieller Werte für das eine oder die mehreren Attribute, wobei der Bereich potenzieller Werte zumindest teilweise basierend auf dem einen oder den mehreren Platzhaltern bestimmt wird und wobei der konkrete Zustand des einen oder der mehreren Attribute zumindest teilweise basierend auf dem einen oder den mehreren repräsentativen Werten für das eine oder die mehreren Attribute bestimmt wird.
- Satz 32. Verfahren nach einem der Sätze 25-31, ferner umfassend:
- zumindest teilweise basierend auf dem Bestimmen, dass die erste Rolle die zweite Rolle übernehmen kann, Erzeugen einer Benachrichtigung über einen Sicherheitsbefund in Bezug auf eine Zugriffssteuerungsrichtlinienkonfiguration.
- Satz 33. Ein oder mehrere nichttransitorische computerlesbare Speichermedien, auf denen Programmanweisungen gespeichert sind, die bei Ausführung auf einem oder mehreren oder über einen oder mehrere Prozessoren Folgendes durchführen:
- Bestimmen, durch eine Zugriffssteuerungsanalyseeinheit, eines ersten Knotens in einem Graphen, wobei der erste Knoten einer ersten Rolle in einem Anbieternetzwerk entspricht, das eine Vielzahl von Diensten oder Ressourcen beherbergt, wobei die erste Rolle einer ersten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die erste Zugriffssteuerungsrichtlinie den Zugriff auf eine(n) oder mehrere erste der Dienste oder Ressourcen gewährt oder verweigert;
- Bestimmen, durch die Zugriffssteuerungsanalyseeinheit, eines zweiten Knotens in dem Graphen, wobei der zweite Knoten einer zweiten Rolle in dem Anbieternetzwerk entspricht, wobei die zweite Rolle einer zweiten Zugriffssteuerungsrichtlinie zugeordnet ist und wobei die zweite Zugriffssteuerungsrichtlinie den Zugriff auf eine(n) oder mehrere zweite der Dienste oder Ressourcen gewährt oder verweigert; und
- Durchführen, durch die Zugriffssteuerungsanalyseeinheit, einer Rollenerreichbarkeitsanalyse, die bestimmt, ob die erste Rolle die zweite Rolle für einen konkreten Zustand von einem oder mehreren Tags übernehmen kann, wobei die Rollenerreichbarkeitsanalyse Folgendes umfasst:
- Bestimmen einer dritten Zugriffssteuerungsrichtlinie, die eine Ergänzung einer Rollenübernahmeanfrage für die zweite Rolle autorisiert; und
- Bestimmen, ob die erste Rolle die zweite Rolle übernehmen kann, zumindest teilweise basierend auf der Analyse der dritten Zugriffssteuerungsrichtlinie in Bezug auf eine Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Tags.
- Satz 34. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach Satz 33, ferner umfassend zusätzliche Programmanweisungen, die bei Ausführung auf dem einen oder mehreren oder über den einen oder die mehreren Prozessoren Folgendes durchführen:
- zumindest teilweise basierend auf der Rollenerreichbarkeitsanalyse, Gewähren oder Verweigern des Zugriffs auf den/die eine(n) oder mehreren zweiten der Dienste oder Ressourcen für einen Benutzer in der erste Rolle.
- Satz 35. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 33-34, wobei die Rollenübernahmerichtlinie für die zweite Rolle so erweitert wird, dass sie eine oder mehrere Anweisungen beinhaltet, die Anfragen ablehnen, die eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle nicht erfüllen.
- Satz 36. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 33-35, wobei die Rollenübernahmeanfrage nicht autorisiert wird, wenn die dritte Zugriffssteuerungsrichtlinie nicht die Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Tags umfasst.
- Satz 37. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 33-36, wobei die Rollenerreichbarkeitsanalyse einen Richtlinienvergleichsdienst aufruft, der ein Äquivalenzergebnis für die dritte Zugriffssteuerungsrichtlinie und die Rollenübernahmerichtlinie für die zweite Rolle für den konkreten Zustand des einen oder der mehreren Tags bestimmt.
- Satz 38. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 33-37, wobei eine oder mehrere Bedingungen der Rollenübernahmerichtlinie für die zweite Rolle einen oder mehrere Platzhalter für das eine oder die mehreren Tags umfassen.
- Satz 39. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach Satz 38, ferner umfassend zusätzliche Programmanweisungen, die bei Ausführung auf dem einen oder mehreren oder über den einen oder die mehreren Prozessoren Folgendes durchführen:
- Auswählen eines oder mehrerer repräsentativer Werte für das eine oder die mehreren Tags aus einem Bereich potenzieller Werte für das eine oder die mehreren Tags, wobei der Bereich potenzieller Werte zumindest teilweise basierend auf dem einen oder den mehreren Platzhaltern bestimmt wird und wobei der konkrete Zustand des einen oder der mehreren Tags zumindest teilweise basierend auf dem einen oder den mehreren repräsentativen Werten für das eine oder die mehreren Tags bestimmt wird.
- Satz 40. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach einem der Sätze 33-39, ferner umfassend zusätzliche Programmanweisungen, die bei Ausführung auf dem einen oder den mehreren oder über den einen oder die mehreren Prozessoren Folgendes durchführen:
- zumindest teilweise basierend auf dem Bestimmen, dass die erste Rolle die zweite Rolle übernehmen kann, Erzeugen einer Benachrichtigung über einen Sicherheitsbefund in Bezug auf eine Zugriffssteuerungsrichtlinienkonfiguration.
- Set 1. System, comprising:
- an access control analysis unit comprising one or more processors and one or more memories for storing computer-executable instructions that, when executed, cause the one or more processors to:
- determining a graph comprising a plurality of nodes and one or more directed edges, the nodes representing a plurality of roles in a provider network hosting a plurality of services and resources, the nodes including a first node representing a first role , and a second node representing a second role, wherein the roles are associated with a plurality of access control policies that grant or deny access to individual ones of the plurality of services and resources, and wherein one or more of the access control policies at least partially grant access grant or deny based on one or more key-value tags; and
- Determining, based at least in part on a role reachability analysis of the graph, whether the first role can assume the second role using one or more role assumption steps for a particular state of the one or more key-value tags, a single one of the role assumption steps having temporary access during a role session and wherein the one or more key-value tags comprise one or more transitive tags that persist during the one or more role assumption steps.
- an access control analysis unit comprising one or more processors and one or more memories for storing computer-executable instructions that, when executed, cause the one or more processors to:
- Clause 2. The system of Clause 1, wherein the access control policies allow the first role to assume the second role if the first role provides a session tag that matches a condition associated with the second role.
- Clause 3. The system of Clause 2, wherein the condition associated with the second role comprises one or more placeholders for a value of a key.
- Theorem 4. The system of any of theorems 1-2, wherein the graph is determined by determining one or more neighbors for a particular node in the graph based at least in part on a set of the key-value tags whose keys are explicitly specified with appropriate conditions in specified in the access control policies, or by under-specified key-value tags whose values are unrestricted or partially restricted.
- Set 5. Method comprising:
- Determining, by an access control analysis unit, a graph comprising a plurality of nodes and one or more edges, the nodes representing a plurality of roles in a provider network hosting a plurality of resources, the nodes including a first node having a first Role represents, and a second node representing a second role, wherein the roles are associated with a plurality of access control policies that grant or deny access to individual ones of the plurality of resources, and wherein one or more of access control policies grant or deny access based at least in part on one or more attributes; and
- Determine, by the access control analysis unit based at least in part on a role reachability analysis of the graph, whether the first role can assume the second role using one or more role assumption steps for a specific state of the one or more attributes, and wherein the one or more attributes one or include multiple transitive attributes that persist during the one or more role assumption steps.
- Clause 6. The method of Clause 5, wherein the access control policies allow the first role to assume the second role if the first role provides a session attribute that matches a condition associated with the second role.
- Set 7. The method of set 6, wherein the condition associated with the second role includes one or more placeholders for a value of a key.
- Clause 8. The method of any one of clauses 5-7, further comprising:
- Aggregating one or more constraints on the one or more attributes, the one or more constraints being specified by one or more of the access control policies associated with the one or more role assumption steps.
- Theorem 9. The method of any of theorems 5-8, wherein one or more neighbors for a particular node in the graph are determined based at least in part on a set of the attributes whose keys are explicitly specified with corresponding conditions in the access control policies.
- Theorem 10. The method of any of theorems 5-9, wherein one or more neighbors for a particular node in the graph are determined based at least in part on under-specified attributes whose values are unconstrained or partially constrained.
- Clause 11. The method of any of Clauses 5-10, wherein the first role is in a first account with the provider network and wherein the second role is in a second account with the provider network.
- Clause 12. The method of any one of Clauses 5-11, further comprising:
- based at least in part on determining that the first role can assume the second role, generating a notification of a security finding related to a configuration of the access control policies.
- Clause 13. One or more non-transitory computer-readable storage media storing program instructions that, when executed on or through one or more processors, perform the following:
- Determining, by an access control analysis unit, a graph comprising a plurality of nodes and one or more edges, the nodes representing a plurality of roles in a provider network hosting a plurality of services or resources, the nodes including a first node that representing a first role, and a second node representing a second role, wherein the roles are associated with a plurality of access control policies that grant or deny access to ones of the plurality of services or resources, and wherein one or more of the access control policies grant or deny access based at least in part on one or more tags; and
- Determine, by the access control analysis unit based at least in part on a role reachability analysis of the graph, whether the first role can assume the second role using one or more role assumption steps for a specific state of the one or more tags, and wherein the one or more tags one or include multiple transitive tags that persist throughout the one or more role assumption steps.
- Clause 14. One or more non-transitory computer-readable storage media according to Clause 13, wherein the access control policies allow the first role to assume the second role if the first role provides a session tag that matches a condition associated with the second role .
- Clause 15. One or more non-transitory computer-readable storage media according to Clause 14, wherein the condition associated with the second role does not include one or more placeholders for a value for a key.
- Clause 16. One or more non-transitory computer-readable storage media according to any one of Clauses 13-15, further comprising additional program instructions that, when executed on or through the one or more processors, perform the following:
- Aggregating one or more constraints on the one or more attributes, the one or more constraints being specified by one or more of the access control policies associated with the one or more role assumption steps.
- Clause 17. One or more non-transitory computer-readable storage media according to any of clauses 13-16, wherein the graph is determined based at least in part on one or more of the tags having keys explicitly stated in the access control policies.
- Clause 18. One or more non-transitory computer-readable storage media according to any of clauses 13-17, wherein the graph is determined based at least in part on the application of one or more constraints to the one or more tags, the one or more constraints being governed by one or specifying a plurality of the access control policies associated with the one or more role assumption steps.
- Clause 19. One or more non-transitory computer-readable storage media according to any one of Clauses 13-18, further comprising additional program instructions that, when executed on or through the one or more processors, perform the following:
- monitoring calls to the plurality of services on the provider network; and if the calls are determined to change a state of the provider network, restarting the role reachability analysis.
- Clause 20. One or more non-transitory computer-readable storage media according to any of clauses 13-19, wherein the graph is determined using a policy comparison service that determines a semantic difference between two of the access control policies.
- Set 21. System comprising:
- an access control analysis unit comprising one or more processors and one or more memories for storing computer-executable instructions that, when executed, cause the one or more processors to:
- determining a first node in a graph, the first node corresponding to a first role in a provider network hosting a plurality of services and resources, the first role being associated with a first access control policy, and the first access control policy permitting access to a first to grant or deny services and resources;
- determining a second node in the graph, the second node corresponding to a second role in the provider network, the second role associated with a second access control policy, and the second access control policy granting access to a second one of the services and resources or denied;
- performing a role reachability analysis that determines whether the first role can assume the second role for a specific state of one or more key-value tags, the one or more role assumption steps providing temporary access during a role session, the role reachability analysis determining a third access control policy that authorizes an addition to a role assumption request for the second role, wherein the role reachability analysis determines whether the first role can assume the second role based at least in part on an analysis of the third access control policy with respect to a role assumption policy for the second role for the particular state of the one or more key-value tags, and wherein the role assumption request is unauthorized if the third access control policy does not include the role assumption policy for the second role for the particular state of the one or more key-value tags; and
- Based at least in part on the role reachability analysis, granting or denying access to the second one(s) of the services and resources for a principal in the first role.
- an access control analysis unit comprising one or more processors and one or more memories for storing computer-executable instructions that, when executed, cause the one or more processors to:
- Clause 22. The system of clause 21, wherein the role assumption policy for the second role is extended to include one or more instructions that reject requests that fail to meet one or more conditions of the role assumption policy for the second role.
- Clause 23. The system of any of clauses 21-22, wherein one or more conditions of the role assumption policy for the second role includes one or more placeholders for the one or more key-value tags.
- Clause 24. The system of Clause 23, wherein the role reachability analysis selects one or more representative values for the one or more key-value tags from a range of potential values for the one or more key-value tags, the range of potential values based at least in part on the one or more placeholders and wherein the particular state of the one or more key-value tags is determined based at least in part on the one or more representative values for the one or more key-value tags.
- Set 25. A method comprising:
- Determining, by an access control analysis unit, a first node in a graph, the first node corresponding to a first role in a provider network hosting a plurality of resources, the first role being associated with a first access control policy, and the first access control policy permitting access to a or multiple first of resources granted or denied;
- determining, by the access control analysis unit, a second node in the graph, wherein the second node corresponds to a second role in the provider network, wherein the second role is associated with a second access control policy and wherein the second access control policy grants access to one or more second ones of the resources or refused;
- performing, by the access control analysis unit, a role reachability analysis that determines whether the first role can assume the second role for a specific state of one or more attributes, the role reachability analysis comprising:
- determining a third access control policy authorizing negation of a role assumption request for the second role; and
- determining whether the first role can assume the second role based at least in part on analyzing the third access control policy with respect to a role assumption policy for the second role for the particular state of the one or more attributes.
- Clause 26. Method according to Clause 25, further comprising:
- Based at least in part on the role availability analysis, granting or denying access to the second of the resources for a principal in the first role.
- Clause 27. The method of any of clauses 25-26, wherein the role assumption policy for the second role is extended to include one or more instructions that reject requests that fail to meet one or more conditions of the role assumption policy for the second role.
- Clause 28. The method of any of clauses 25-27, wherein the role inheritance request is not authorized if the third access control policy does not include the inheritance policy for the second role for the particular state of the one or more attributes.
- Clause 29. The method of any of clauses 25-28, wherein the role reachability analysis invokes a policy comparison service that determines an equivalence score for the third access control policy and the role inheritance policy for the second role for the particular state of the one or more attributes.
- Clause 30. The method of any of clauses 25-29, wherein one or more conditions of the role assumption policy for the second role includes one or more placeholders for the one or more attributes.
- Clause 31. The method of Clause 30, wherein performing the role reachability analysis further comprises:
- selecting one or more representative values for the one or more attributes from a range of potential values for the one or more attributes, wherein the range of potential values is determined based at least in part on the one or more placeholders and wherein the particular state of the one or the plurality of attributes is determined based at least in part on the one or more representative values for the one or more attributes.
- Clause 32. The method of any one of clauses 25-31, further comprising:
- based at least in part on determining that the first role can assume the second role, generating a notification of a security finding related to an access control policy configuration.
- Clause 33. One or more non-transitory computer-readable storage media storing program instructions that, when executed on or through one or more processors, perform the following:
- Determining, by an access control analysis unit, a first node in a graph, the first node corresponding to a first role in a provider network that hosts a plurality of services or resources, the first role being associated with a first access control policy, and the first access control policy controlling access granted or denied to one or more of the first of the Services or Resources;
- determining, by the access control analysis unit, a second node in the graph, the second node corresponding to a second role in the provider network, the second role being associated with a second access control policy, and the second access control policy permitting access to one or more second of the grant or deny services or resources; and
- performing, by the access control analysis entity, a role reachability analysis that determines whether the first role can assume the second role for a specific state of one or more tags, the role reachability analysis comprising:
- determining a third access control policy that authorizes an addition to a role assumption request for the second role; and
- determining whether the first role can assume the second role based at least in part on analyzing the third access control policy with respect to a role assumption policy for the second role for the particular state of the one or more tags.
- Clause 34. One or more non-transitory computer-readable storage media according to Clause 33, further comprising additional program instructions that, when executed on or through the one or more processors, perform the following:
- Based at least in part on the role reachability analysis, granting or denying access to the second one or more services or resources for a user in the first role.
- Clause 35. One or more non-transitory computer-readable storage media according to any one of clauses 33-34, wherein the role assumption policy for the second role is extended to include one or more instructions denying requests that meet one or more conditions of the role assumption policy for the second not fulfilling the role.
- Clause 36. One or more non-transitory computer-readable storage media according to any one of Clauses 33-35, wherein the role assumption request is not authorized if the third access control policy does not include the role assumption policy for the second role for the particular state of the one or more tags.
- Clause 37. One or more non-transitory computer-readable storage media according to any one of Clauses 33-36, wherein the role reachability analysis invokes a policy comparison service that determines an equivalence result for the third access control policy and the role assumption policy for the second role for the particular state of the one or more tags.
- Clause 38. One or more non-transitory computer-readable storage media according to any of clauses 33-37, wherein one or more conditions of the role assumption policy for the second role includes one or more placeholders for the one or more tags.
- Clause 39. One or more non-transitory computer-readable storage media according to Clause 38, further comprising additional program instructions that, when executed on or through the one or more processors, perform the following:
- selecting one or more representative values for the one or more tags from a range of potential values for the one or more tags, wherein the range of potential values is determined based at least in part on the one or more placeholders, and wherein the particular state of the one or more tags is determined based at least in part on the one or more representative values for the one or more tags.
- Clause 40. One or more non-transitory computer-readable storage media according to any one of Clauses 33-39, further comprising additional program instructions that, when executed on or through the one or more processors, perform the following:
- based at least in part on determining that the first role can assume the second role, generating a notification of a security finding related to an access control policy configuration.
Claims (15)
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES202031233 | 2020-12-10 | ||
ESP202031234 | 2020-12-10 | ||
ESP202031233 | 2020-12-10 | ||
ES202031234 | 2020-12-10 | ||
US17/119,855 US12034727B2 (en) | 2020-12-10 | 2020-12-11 | Analysis of role reachability with transitive tags |
US17/119,855 | 2020-12-11 | ||
US17/119,868 | 2020-12-11 | ||
US17/119,868 US11757886B2 (en) | 2020-12-10 | 2020-12-11 | Analysis of role reachability using policy complements |
PCT/US2021/062584 WO2022125760A1 (en) | 2020-12-10 | 2021-12-09 | Analysis of role reachability with transitive tags |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112021005656T5 true DE112021005656T5 (en) | 2023-08-10 |
Family
ID=79287826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112021005656.5T Pending DE112021005656T5 (en) | 2020-12-10 | 2021-12-09 | ANALYSIS OF ROLE REACHABILITY WITH TRANSITIVE TAGS |
Country Status (3)
Country | Link |
---|---|
DE (1) | DE112021005656T5 (en) |
GB (2) | GB2617745A (en) |
WO (1) | WO2022125760A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115296901B (en) * | 2022-08-03 | 2023-07-04 | 中国平安财产保险股份有限公司 | Rights management method based on artificial intelligence and related equipment |
US20240179146A1 (en) * | 2022-11-28 | 2024-05-30 | Amazon Technologies, Inc. | Role-based permission delegation in a provider network |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9438506B2 (en) * | 2013-12-11 | 2016-09-06 | Amazon Technologies, Inc. | Identity and access management-based access control in virtual networks |
US10242223B2 (en) * | 2017-02-27 | 2019-03-26 | Microsoft Technology Licensing, Llc | Access controlled graph query spanning |
US10819652B2 (en) * | 2018-07-02 | 2020-10-27 | Amazon Technologies, Inc. | Access management tags |
-
2021
- 2021-12-09 DE DE112021005656.5T patent/DE112021005656T5/en active Pending
- 2021-12-09 GB GB2310476.3A patent/GB2617745A/en active Pending
- 2021-12-09 GB GBGB2410399.6A patent/GB202410399D0/en active Pending
- 2021-12-09 WO PCT/US2021/062584 patent/WO2022125760A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB202410399D0 (en) | 2024-08-28 |
GB2617745A (en) | 2023-10-18 |
WO2022125760A1 (en) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10296804B4 (en) | Method and system for authorizing access to resources on a server | |
DE112010003464B4 (en) | Modification of access control lists | |
DE69905705T2 (en) | INTELLIGENT SECURITY MANAGEMENT PROCEDURE AND SYSTEM | |
DE60127557T2 (en) | FILTERING A PERMIT WITH THE HELP OF PERMISSIONS LINKED TO A COORDINATING ARRANGEMENT | |
DE112018004411T5 (en) | ACCESS CONTROL IN MICRO-SERVICE ARCHITECTURES | |
DE102019103927A1 (en) | Systems and methods for performing a security protocol in an execution plan controlled by hierarchical state machines | |
DE112011101357T5 (en) | Dynamic token for temporary data access | |
DE112020000538T5 (en) | FINE-GRAINED TOKEN-BASED ACCESS CONTROL | |
DE112017004033T5 (en) | Method for obtaining certified certificates by microservices in resilient cloud environments | |
DE112011104787B4 (en) | Use of content via personal clouds | |
DE112017007393T5 (en) | SYSTEM AND METHOD FOR NETWORK DEVICE SAFETY AND TRUST VALUATION | |
DE112016002392T5 (en) | Authorization in a distributed system using access control lists and groups | |
DE112018005725T5 (en) | DATA DEIDENTIFICATION BASED ON DETECTION OF PERMITTED CONFIGURATIONS FOR DATA DEIDENTIFICATION PROCESSES | |
DE112021005478T5 (en) | METHOD OF PROTECTING AN EDGE DEVICE TRUST | |
DE112018000525T5 (en) | Systems and procedures for authenticating Platform Trust or platform trust in a network-aware virtualization environment | |
DE112011102224B4 (en) | Identity mediation between client and server applications | |
DE112021005656T5 (en) | ANALYSIS OF ROLE REACHABILITY WITH TRANSITIVE TAGS | |
DE112016005914T5 (en) | Organically composable IDD networks | |
DE112021002201T5 (en) | Privacy-oriented data security in a cloud environment | |
DE102021130396A1 (en) | DATA ACCESS MONITORING AND CONTROL | |
DE112017002794T5 (en) | METHOD AND DEVICE FOR ISSUING A CERTIFICATE OF AUTHORITY FOR AN INCIDENT AREA NETWORK | |
DE112021004945T5 (en) | TECHNIQUES OF COMPOSITIONAL VERIFICATION FOR ROLE ACHIEVEMENT ANALYZES IN IDENTITY SYSTEMS | |
US11757886B2 (en) | Analysis of role reachability using policy complements | |
US10192262B2 (en) | System for periodically updating backings for resource requests | |
DE112021004613T5 (en) | EDITABLE BLOCKCHAIN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |