Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perubahan pada Pembuat IAM Kebijakan API dari versi 1 ke versi 2
Topik ini merinci perubahan dalam Pembuat IAM Kebijakan API dari versi 1 (v1) ke versi 2 (v2).
Perubahan tingkat tinggi
Perubahan | v1 | v2 |
---|---|---|
Ketergantungan Maven |
|
|
Nama paket | com.amazonaws.auth.policy |
software.amazon.awssdk.policybuilder.iam |
Nama kelas |
1 Versi terbaru
APIperubahan
Pengaturan | v1 | v2 |
---|---|---|
Membuat instantiasi kebijakan |
|
|
Tetapkan id |
|
|
Tetapkan versi |
N/A - menggunakan versi default 2012-10-17 |
|
Buat pernyataan |
|
|
Tetapkan pernyataan |
|
|
Perbedaan dalam membangun pernyataan
Tindakan
v1
V1 SDK memiliki enum
tipe untuk tindakan layanan yang mewakili Action
elemen dalam pernyataan kebijakan. enum
Jenis berikut adalah beberapa contoh.
Contoh berikut menunjukkan SendMessage
konstanta untukSQSActions
.
Action action = SQSActions.SendMessage;
Anda tidak dapat menentukan NotAction
elemen ke pernyataan di v1.
v2
Di v2, IamActioncreate
metode seperti yang ditunjukkan pada kode berikut.
IamAction action = IamAction.create("sqs:SendMessage");
Anda dapat menentukan NotAction
untuk pernyataan dengan v2 seperti yang ditunjukkan dalam kode berikut.
IamAction action = IamAction.create("sqs:SendMessage"); IamStatement.builder().addNotAction(action);
Ketentuan
v1
Untuk mewakili kondisi pernyataan, v1 SDK menggunakan subclass dari. Condition
Setiap Condition
subkelas mendefinisikan enum
tipe perbandingan untuk membantu menentukan kondisi. Misalnya, berikut ini menunjukkan perbandingan string tidak suka untuk suatu kondisi.
Condition condition = new StringCondition(StringComparisonType.StringNotLike, "key", "value");
v2
Di v2, Anda membuat kondisi untuk pernyataan kebijakan dengan menggunakan IamCondition
dan menyediakanIamConditionOperator
, yang berisi enums
untuk semua jenis.
IamCondition condition = IamCondition.create(IamConditionOperator.STRING_NOT_LIKE, "key", "value");
Sumber daya
v1
Resource
Elemen pernyataan kebijakan diwakili oleh SDK Resource
kelas. Anda menyediakan ARN sebagai string di konstruktor. Subkelas berikut menyediakan konstruktor kenyamanan.
Di v1, Anda dapat menentukan NotResource
elemen untuk a Resource
dengan memanggil withIsNotType
metode seperti yang ditunjukkan dalam pernyataan berikut.
Resource resource = new Resource("arn:aws:s3:::mybucket").withIsNotType(true);
v2
Di v2, Anda membuat Resource
elemen dengan meneruskan ARN ke IamResource.create
metode.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket");
Sebuah IamResource
dapat diatur sebagai NotResource
elemen seperti yang ditunjukkan dalam cuplikan berikut.
IamResource resource = IamResource.create("arn:aws:s3:::mybucket"); IamStatement.builder().addNotResource(resource);
IamResource.ALL
mewakili semua sumber daya.
Pengguna utama
v1
V1 SDK menawarkan Principal
kelas-kelas berikut untuk mewakili jenis kepala sekolah yang mencakup semua anggota:
-
AllUsers
-
AllServices
-
AllWebProviders
-
All
Anda tidak dapat menambahkan NotPrincipal
elemen ke pernyataan.
v2
Dalam v2, IamPrincipal.ALL
mewakili semua prinsip:
Untuk mewakili semua anggota dalam jenis kepala sekolah lainnya, gunakan IamPrincipalType
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 NotPrincipal
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);