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 im IAM Policy Builder API von Version 1 zu Version 2
In diesem Thema werden die Änderungen im IAM Policy Builder API von Version 1 (v1) zu 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
In Version 1 enum
gibt SDK es Typen für Serviceaktionen, die Action
Elemente einer Grundsatzerklä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 SDK verwendet die Version 1 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 Grundsatzerklärung wird durch die Resource
Klasse SDK s repräsentiert. Sie geben das 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:::mybucket").withIsNotType(true);
v2
In v2 erstellen Sie ein Resource
Element, indem Sie ein ARN an die IamResource.create
Methode übergeben.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket");
An IamResource
kann als NotResource
Element festgelegt werden, wie im folgenden Snippet gezeigt.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALL
steht für alle Ressourcen.
Auftraggeber
v1
Die Version 1 SDK bietet die folgenden Principal
Klassen, um Typen von Prinzipalen darzustellen, die alle Mitglieder umfassen:
-
AllUsers
-
AllServices
-
AllWebProviders
-
All
Sie können einer Aussage 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);