

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
<a name="migration-iam-policy-builder"></a>

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
<a name="migration-iam-policy-builder-high-level"></a>


****  

| Änderungen | v1 |   v2 | 
| --- | --- | --- | 
|    Maven-Abhängigkeiten  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>com.amazonaws</groupId><br />            <artifactId>aws-java-sdk-bom</artifactId><br />            <version>1.12.5871</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>com.amazonaws</groupId><br />        <artifactId>aws-java-sdk-core</artifactId><br />    </dependency><br /></dependencies></pre>  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>software.amazon.awssdk</groupId><br />            <artifactId>bom</artifactId><br />            <version>2.27.212</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>software.amazon.awssdk</groupId><br />        <artifactId>iam-policy-builder</artifactId><br />    </dependency><br /></dependencies></pre>  | 
| Package name | com.amazonaws.auth.policy | software.amazon.awssdk.policybuilder.iam | 
| Klassennamen |  [Richtlinie](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Policy.html) [Statement](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Statement.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-java/latest/developer-guide/migration-iam-policy-builder.html)  |  [IamPolicy](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamPolicy.html) [IamStatement](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamStatement.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-java/latest/developer-guide/migration-iam-policy-builder.html)  | 

1 Letzte Version[.](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom) 2 [Letzte Version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

## API-Änderungen
<a name="migration-iam-policy-builder-api"></a>


****  

| Einstellung | v1 |   v2 | 
| --- | --- | --- | 
|  Instanziieren Sie eine Richtlinie |  <pre>Policy policy = new Policy();</pre>  |  <pre>IamPolicy.Builder policyBuilder = IamPolicy.builder();<br />...<br />IamPolicy policy = policyBuilder.build();</pre>  | 
|    ID festlegen  |  <pre>policy.withtId(...);<br />policy.setId(...);</pre>  |  <pre>policyBuilder.id(...);</pre>  | 
|    Version festlegen  | N/A — verwendet die Standardversion von 2012-10-17 |  <pre>policyBuilder.version(...);</pre>  | 
|    Aussage erstellen  |  <pre>Statement statement = <br />    new Statement(Effect.Allow)<br />            .withActions(...)<br />            .withConditions(...)<br />            .withId(...)<br />            .withPrincipals(...)<br />            .withResources(...);</pre>  |  <pre>IamStatement statement = <br />    IamStatement.builder()<br />            .effect(IamEffect.ALLOW)<br />            .actions(...)<br />            .notActions(...)<br />            .conditions(...)<br />            .sid(...)<br />            .principals(...)<br />            .notPrincipals(...)<br />            .resources(...)<br />            .notResources(...)<br />            .build()</pre>  | 
|    Aussage festlegen  |  <pre>policy.withStatements(statement);<br />policy.setStatements(statement);</pre>  |  <pre>policyBuilder.addStatement(statement);</pre>  | 

## Unterschiede beim Aufbau einer Aussage
<a name="migration-iam-policy-builder-statement"></a>

### Aktionen
<a name="migration-iam-policy-builder-statement-actions"></a>

#### v1
<a name="migration-iam-policy-builder-statement-actions.v1"></a>

Das v1-SDK verfügt über [`enum`Typen](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Action.html) für Serviceaktionen, die `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html)` Elemente einer Richtlinienerklärung darstellen. Die folgenden `enum` Typen sind einige Beispiele.
+ `[IdentityManagementActions](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/actions/IdentityManagementActions.html)`
+ `[DynamoDBv2Actions](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/actions/DynamoDBv2Actions.html)`
+ `[SQSActions](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/actions/SQSActions.html)`

Das folgende Beispiel zeigt die `SendMessage` Konstante für`SQSActions`.

```
Action action = SQSActions.SendMessage;
```

In Version 1 können Sie kein `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html)` Element für eine Anweisung angeben.

####   v2
<a name="migration-iam-policy-builder-statement-actions.v2"></a>

In Version 2 repräsentiert die [IamAction](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamAction.html)Schnittstelle alle Aktionen. Um ein [dienstspezifisches Aktionselement](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html) anzugeben, übergeben Sie eine Zeichenfolge an die `create` Methode, wie im folgenden Code gezeigt.

```
IamAction action = IamAction.create("sqs:SendMessage");
```

Sie können a `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html)` für eine Anweisung mit v2 angeben, wie im folgenden Code gezeigt.

```
IamAction action = IamAction.create("sqs:SendMessage");
IamStatement.builder().addNotAction(action);
```

### Bedingungen
<a name="migration-iam-policy-builder-statement-conditions"></a>

#### v1
<a name="migration-iam-policy-builder-statement-conditions-v1"></a>

Zur Darstellung von Anweisungsbedingungen verwendet das v1-SDK Unterklassen von [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Condition.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Condition.html). 
+  [ArnCondition](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/ArnCondition.html) 
+  [BooleanCondition](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/BooleanCondition.html)
+  [DateCondition](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/DateCondition.html)
+ [IpAddressCondition](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/IpAddressCondition.html)
+ [NumericCondition](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/NumericCondition.html)
+ [ StringCondition ](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/conditions/StringCondition.html)

Jede `Condition` Unterklasse definiert einen `enum` Vergleichstyp, der bei der Definition der Bedingung hilft. Im Folgenden wird beispielsweise ein [Vergleich einer Zeichenfolge](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String), die *nicht ähnlich ist*, für eine Bedingung dargestellt.

```
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
```

####   v2
<a name="migration-iam-policy-builder-statement-conditions-v2"></a>

In Version 2 erstellen Sie eine Bedingung für eine Richtlinienanweisung, indem Sie eine`[IamConditionOperator](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamConditionOperator.html)`, die `enums` für alle Typen enthält, verwenden `[IamCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamCondition.html)` und bereitstellen.

```
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
```

### Ressourcen
<a name="migration-iam-policy-builder-statement-resources"></a>

#### v1
<a name="migration-iam-policy-builder-statement-resources-v1"></a>

Das `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)` Element einer Richtlinienerklärung wird durch die `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` Klasse des SDK repräsentiert. Sie geben den ARN als Zeichenfolge im Konstruktor an. Die folgenden Unterklassen bieten praktische Konstruktoren.
+ [S3BucketResource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/S3BucketResource.html)
+ [S3ObjectResource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/S3ObjectResource.html)
+ [SQSQueueRessource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/SQSQueueResource.html)

In Version 1 können Sie ein `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html)` Element für a angeben, `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` 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
<a name="migration-iam-policy-builder-statement-resources-v2"></a>

In v2 erstellen Sie ein `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)` Element, indem Sie der `IamResource.create` Methode einen ARN übergeben.

```
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket");
```

An `[IamResource](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamResource.html)` kann als *[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html)*Element festgelegt werden, wie im folgenden Snippet gezeigt.

```
IamResource resource = IamResource.create("arn:aws:s3:::amzn-s3-demo-bucket");
IamStatement.builder().addNotResource(resource);
```

`IamResource.ALL`steht für alle Ressourcen. 

### Prinzipale
<a name="migration-iam-policy-builder-statement-principal"></a>

#### v1
<a name="migration-iam-policy-builder-statement-principal-v1"></a>

Das v1-SDK bietet die folgenden `[Principal](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Principal.html)` Klassen, um Typen von Prinzipalen darzustellen, die alle Mitglieder umfassen:
+ `AllUsers`
+ `AllServices`
+ `AllWebProviders`
+ `All`

Sie können einer Anweisung kein `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html)` Element hinzufügen.

####   v2
<a name="migration-iam-policy-builder-statement-principal-v2"></a>

Steht in v2 `IamPrincipal.ALL` für alle Prinzipale:

Um alle Mitglieder in anderen Typen von Prinzipalen darzustellen, verwenden Sie die `[IamPrincipalType](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamPrincipalType.html)` 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 `[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html)` 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);
```