

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Modifications apportées à l'API IAM Policy Builder de la version 1 à la version 2
<a name="migration-iam-policy-builder"></a>

Cette rubrique décrit les modifications apportées à l'API IAM Policy Builder de la version 1 (v1) à la version 2 (v2).

## Changements de haut niveau
<a name="migration-iam-policy-builder-high-level"></a>


****  

| Modifier | v1 |   v2 | 
| --- | --- | --- | 
|    Dépendances de Maven  |  <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>  | 
| Nom du package | com.amazonaws.auth.policy | software.amazon.awssdk.policybuilder.iam | 
| Noms des classes |  [Stratégie](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Policy.html) [Instruction](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/fr_fr/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/fr_fr/sdk-for-java/latest/developer-guide/migration-iam-policy-builder.html)  | 

1 [Dernière version](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom). 2 [Dernière version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

## Modifications de l'API
<a name="migration-iam-policy-builder-api"></a>


****  

| Paramètre | v1 |   v2 | 
| --- | --- | --- | 
|  Instancier une politique |  <pre>Policy policy = new Policy();</pre>  |  <pre>IamPolicy.Builder policyBuilder = IamPolicy.builder();<br />...<br />IamPolicy policy = policyBuilder.build();</pre>  | 
|    Définir l'identifiant  |  <pre>policy.withtId(...);<br />policy.setId(...);</pre>  |  <pre>policyBuilder.id(...);</pre>  | 
|    Version du set  | N/A - utilise la version par défaut de 2012-10-17 |  <pre>policyBuilder.version(...);</pre>  | 
|    Créer une déclaration  |  <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>  | 
|    Définir une déclaration  |  <pre>policy.withStatements(statement);<br />policy.setStatements(statement);</pre>  |  <pre>policyBuilder.addStatement(statement);</pre>  | 

## Différences dans l'élaboration d'une déclaration
<a name="migration-iam-policy-builder-statement"></a>

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

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

Le SDK v1 comporte des [`enum`types d'](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Action.html)actions de service qui représentent des `[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)` éléments d'une déclaration de politique. Les `enum` types suivants en sont des exemples.
+ `[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)`

L'exemple suivant montre la `SendMessage` constante pour`SQSActions`.

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

Vous ne pouvez pas spécifier d'`[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)`élément dans une instruction dans la version 1.

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

Dans la version 2, l'[IamAction](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamAction.html)interface représente toutes les actions. Pour spécifier un élément d'[action spécifique au service](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html), transmettez une chaîne à la `create` méthode comme indiqué dans le code suivant.

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

Vous pouvez spécifier 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)` pour une instruction avec v2 comme indiqué dans le code suivant.

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

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

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

Pour représenter les conditions des instructions, le SDK v1 utilise des sous-classes de. [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)

Chaque `Condition` sous-classe définit un `enum` type de comparaison pour aider à définir la condition. Par exemple, ce qui suit montre une *comparaison de* [chaînes différentes](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) pour une condition.

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

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

Dans la version 2, vous créez une condition pour une déclaration de politique en utilisant `[IamCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamCondition.html)` et en fournissant un`[IamConditionOperator](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamConditionOperator.html)`, qui contient `enums` pour tous les types.

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

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

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

L'`[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)`élément d'une déclaration de politique est représenté par la `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` classe du SDK. Vous fournissez l'ARN sous forme de chaîne dans le constructeur. Les sous-classes suivantes fournissent des constructeurs pratiques.
+ [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)

Dans la version 1, vous pouvez spécifier un `[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)` élément pour a `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` en appelant la `withIsNotType` méthode comme indiqué dans l'instruction suivante.

```
Resource resource = new Resource("arn:aws:s3:::amzn-s3-demo-bucket").withIsNotType(true);
```

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

Dans la version 2, vous créez un `[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)` élément en transmettant un ARN à la `IamResource.create` méthode.

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

Un `[IamResource](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamResource.html)` peut être défini comme *[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)*élément comme indiqué dans l'extrait suivant.

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

`IamResource.ALL`représente toutes les ressources. 

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

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

Le SDK v1 propose les `[Principal](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Principal.html)` classes suivantes pour représenter les types de principes qui incluent tous les membres :
+ `AllUsers`
+ `AllServices`
+ `AllWebProviders`
+ `All`

Vous ne pouvez pas ajouter d'`[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)`élément à une déclaration.

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

Dans la version 2, `IamPrincipal.ALL` représente tous les principes :

Pour représenter tous les membres dans d'autres types de directeurs, utilisez les `[IamPrincipalType](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamPrincipalType.html)` classes lorsque vous créez un`IamPrincipal`.
+ `IamPrincipal.create(IamPrincipalType.AWS,"*")`pour tous les utilisateurs.
+ `IamPrincipal.create(IamPrincipalType.SERVICE,"*")`pour tous les services.
+ `IamPrincipal.create(IamPrincipalType.FEDERATED,"*")`pour tous les fournisseurs Web.
+ `IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")`pour tous les utilisateurs canoniques.

Vous pouvez utiliser `addNotPrincipal` cette méthode pour représenter un `[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)` élément lorsque vous créez une déclaration de politique, comme indiqué dans l'instruction suivante.

```
IamPrincipal principal = IamPrincipal.create(IamPrincipalType.AWS, "arn:aws:iam::444455556666:root");
IamStatement.builder().addNotPrincipal(principal);
```