Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Änderungen an der IAM Policy Builder-API von Version 1 zu Version 2
In diesem Thema werden die Änderungen an der IAM Policy Builder-API von Version 1 (v1) auf Version 2 (v2) beschrieben.
Änderungen auf hoher Ebene
| Änderung | v1 | v2 |
|---|---|---|
|
Maven-Abhängigkeiten |
|
|
| Package name | com.amazonaws.auth.policy |
software.amazon.awssdk.policybuilder.iam |
| Klassennamen |
1 Letzte Version.
API-Änderungen
| Einstellung | v1 | v2 |
|---|---|---|
Instanziieren Sie eine Richtlinie |
|
|
|
ID festlegen |
|
|
|
Version festlegen |
N/A — verwendet die Standardversion von 2012-10-17 |
|
|
Aussage erstellen |
|
|
|
Aussage festlegen |
|
|
Unterschiede beim Aufbau einer Aussage
Aktionen
v1
Das v1-SDK verfügt über enumTypen für Serviceaktionen, die Action Elemente einer Richtlinienerklärung darstellen. Die folgenden enum Typen sind einige Beispiele.
Das folgende Beispiel zeigt die SendMessage Konstante fürSQSActions.
Action action = SQSActions.SendMessage;
In Version 1 können Sie kein NotAction Element für eine Anweisung angeben.
v2
In Version 2 repräsentiert die IamActioncreate Methode, wie im folgenden Code gezeigt.
IamAction action = IamAction.create("sqs:SendMessage");
Sie können a NotAction für eine Anweisung mit v2 angeben, wie im folgenden Code gezeigt.
IamAction action = IamAction.create("sqs:SendMessage"); IamStatement.builder().addNotAction(action);
Bedingungen
v1
Zur Darstellung von Anweisungsbedingungen verwendet das v1-SDK Unterklassen von Condition.
Jede Condition Unterklasse definiert einen enum Vergleichstyp, der bei der Definition der Bedingung hilft. Im Folgenden wird beispielsweise ein Vergleich einer Zeichenfolge, die nicht ähnlich ist, für eine Bedingung dargestellt.
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
v2
In Version 2 erstellen Sie eine Bedingung für eine Richtlinienanweisung, indem Sie eineIamConditionOperator, die enums für alle Typen enthält, verwenden IamCondition und bereitstellen.
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
Ressourcen
v1
Das Resource Element einer Richtlinienerklärung wird durch die Resource Klasse des SDK repräsentiert. Sie geben den ARN als Zeichenfolge im Konstruktor an. Die folgenden Unterklassen bieten praktische Konstruktoren.
In Version 1 können Sie ein NotResource Element für a angeben, Resource indem Sie die withIsNotType Methode aufrufen, wie in der folgenden Anweisung gezeigt.
Resource resource = new Resource("arn:aws:s3:::amzn-s3-demo-bucket").withIsNotType(true);
v2
In v2 erstellen Sie ein Resource Element, indem Sie der IamResource.create Methode einen ARN übergeben.
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket");
An IamResource kann als NotResourceElement festgelegt werden, wie im folgenden Snippet gezeigt.
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALLsteht für alle Ressourcen.
Prinzipale
v1
Das v1-SDK bietet die folgenden Principal Klassen, um Typen von Prinzipalen darzustellen, die alle Mitglieder umfassen:
-
AllUsers -
AllServices -
AllWebProviders -
All
Sie können einer Anweisung kein NotPrincipal Element hinzufügen.
v2
Steht in v2 IamPrincipal.ALL für alle Prinzipale:
Um alle Mitglieder in anderen Typen von Prinzipalen darzustellen, verwenden Sie die IamPrincipalType Klassen, wenn Sie eine erstellen. IamPrincipal
-
IamPrincipal.create(IamPrincipalType.AWS,"*")für alle Benutzer. -
IamPrincipal.create(IamPrincipalType.SERVICE,"*")für alle Dienste. -
IamPrincipal.create(IamPrincipalType.FEDERATED,"*")für alle Webprovider. -
IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")für alle kanonischen Benutzer.
Sie können die addNotPrincipal Methode verwenden, um ein NotPrincipal Element darzustellen, wenn Sie eine Richtlinienerklärung erstellen, wie in der folgenden Anweisung gezeigt.
IamPrincipal principal = IamPrincipal.create(IamPrincipalType.AWS, "arn:aws:iam::444455556666:root"); IamStatement.builder().addNotPrincipal(principal);