

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Perubahan API Pembuat Kebijakan IAM dari versi 1 ke versi 2
<a name="migration-iam-policy-builder"></a>

Topik ini merinci perubahan API Pembuat Kebijakan IAM dari versi 1 (v1) ke versi 2 (v2).

## Perubahan tingkat tinggi
<a name="migration-iam-policy-builder-high-level"></a>


****  

| Ubah | v1 | v2 | 
| --- | --- | --- | 
|    Ketergantungan 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>  | 
| Nama paket | com.amazonaws.auth.policy | software.amazon.awssdk.policybuilder.iam | 
| Nama kelas |  [Kebijakan](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Policy.html) [Pernyataan](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/id_id/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/id_id/sdk-for-java/latest/developer-guide/migration-iam-policy-builder.html)  | 

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

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


****  

| Pengaturan | v1 | v2 | 
| --- | --- | --- | 
|  Membuat instantiasi kebijakan |  <pre>Policy policy = new Policy();</pre>  |  <pre>IamPolicy.Builder policyBuilder = IamPolicy.builder();<br />...<br />IamPolicy policy = policyBuilder.build();</pre>  | 
|    Tetapkan id  |  <pre>policy.withtId(...);<br />policy.setId(...);</pre>  |  <pre>policyBuilder.id(...);</pre>  | 
|    Tetapkan versi  | N/A - menggunakan versi default 2012-10-17 |  <pre>policyBuilder.version(...);</pre>  | 
|    Buat pernyataan  |  <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>  | 
|    Tetapkan pernyataan  |  <pre>policy.withStatements(statement);<br />policy.setStatements(statement);</pre>  |  <pre>policyBuilder.addStatement(statement);</pre>  | 

## Perbedaan dalam membangun pernyataan
<a name="migration-iam-policy-builder-statement"></a>

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

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

SDK v1 memiliki [`enum`tipe](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Action.html) untuk tindakan layanan yang mewakili `[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)` elemen dalam pernyataan kebijakan. `enum`Jenis berikut adalah beberapa contoh.
+ `[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)`

Contoh berikut menunjukkan `SendMessage` konstanta untuk`SQSActions`.

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

Anda tidak dapat menentukan `[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)` elemen ke pernyataan di v1.

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

Di v2, [IamAction](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamAction.html)antarmuka mewakili semua tindakan. Untuk menentukan elemen [tindakan khusus layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html), berikan string ke `create` metode seperti yang ditunjukkan pada kode berikut.

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

Anda dapat menentukan `[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)` untuk pernyataan dengan v2 seperti yang ditunjukkan dalam kode berikut.

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

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

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

Untuk merepresentasikan kondisi pernyataan, SDK v1 menggunakan subclass dari. [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)

Setiap `Condition` subkelas mendefinisikan `enum` tipe perbandingan untuk membantu menentukan kondisi. Misalnya, berikut ini menunjukkan [perbandingan string](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) *tidak suka* untuk suatu kondisi.

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

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

Di v2, Anda membuat kondisi untuk pernyataan kebijakan dengan menggunakan `[IamCondition](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamCondition.html)` dan menyediakan`[IamConditionOperator](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamConditionOperator.html)`, yang berisi `enums` untuk semua jenis.

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

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

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

`[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)`Elemen pernyataan kebijakan diwakili oleh `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` kelas SDK. Anda menyediakan ARN sebagai string di konstruktor. Subkelas berikut menyediakan konstruktor kenyamanan.
+ [S3 BucketResource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/S3BucketResource.html)
+ [S3 ObjectResource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/S3ObjectResource.html)
+ [SQSQueueSumber Daya](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/resources/SQSQueueResource.html)

Di v1, Anda dapat menentukan `[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)` elemen untuk a `[Resource](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Resource.html)` dengan memanggil `withIsNotType` metode seperti yang ditunjukkan dalam pernyataan berikut.

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

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

Di v2, Anda membuat `[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)` elemen dengan meneruskan ARN ke metode. `IamResource.create`

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

Sebuah `[IamResource](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamResource.html)` dapat diatur sebagai *[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)*elemen seperti yang ditunjukkan dalam cuplikan berikut.

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

`IamResource.ALL`mewakili semua sumber daya. 

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

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

SDK v1 menawarkan `[Principal](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/policy/Principal.html)` kelas-kelas berikut untuk mewakili jenis prinsipal yang mencakup semua anggota:
+ `AllUsers`
+ `AllServices`
+ `AllWebProviders`
+ `All`

Anda tidak dapat menambahkan `[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)` elemen ke pernyataan.

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

Dalam v2, `IamPrincipal.ALL` mewakili semua prinsip:

Untuk mewakili semua anggota dalam jenis kepala sekolah lainnya, gunakan `[IamPrincipalType](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/policybuilder/iam/IamPrincipalType.html)` kelas saat Anda membuat file. `IamPrincipal`
+ `IamPrincipal.create(IamPrincipalType.AWS,"*")`untuk semua pengguna.
+ `IamPrincipal.create(IamPrincipalType.SERVICE,"*")`untuk semua layanan.
+ `IamPrincipal.create(IamPrincipalType.FEDERATED,"*")`untuk semua penyedia web.
+ `IamPrincipal.create(IamPrincipalType.CANONICAL_USER,"*")`untuk semua pengguna kanonik.

Anda dapat menggunakan `addNotPrincipal` metode untuk mewakili `[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)` elemen ketika Anda membuat pernyataan kebijakan seperti yang ditunjukkan dalam pernyataan berikut.

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