Logika evaluasi kebijakan lintas akun - AWS Identity and Access Management

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

Logika evaluasi kebijakan lintas akun

Anda dapat mengizinkan prinsipal di satu akun untuk mengakses sumber daya di akun kedua. Hal ini dikenal sebagai akses lintas akun. Saat Anda mengizinkan akses lintas akun, akun yang memiliki prinsipal disebut akun tepercaya. Akun yang memiliki sumber daya disebut akun kepercayaan.

Untuk memungkinkan akses lintas akun, Anda melampirkan kebijakan berbasis sumber daya ke sumber daya yang ingin Anda bagikan. Anda juga harus melampirkan kebijakan berbasis identitas pada identitas yang bertindak sebagai kepala sekolah dalam permintaan. Kebijakan berbasis sumber daya dalam akun kepercayaan harus menyebutkan prinsipal akun tepercaya yang akan memiliki akses ke sumber daya tersebut. Anda dapat menentukan seluruh akun atau pengguna IAM, pengguna gabungan, peran IAM, atau sesi paralel yang diterimanya. Anda juga dapat menentukan AWS layanan sebagai kepala sekolah. Untuk informasi selengkapnya, lihat Menentukan prinsipal.

Kebijakan berbasis identitas prinsipal harus mengizinkan akses yang diminta ke sumber daya dalam layanan kepercayaan. Anda dapat melakukan ini dengan menentukan ARN sumber daya atau dengan memungkinkan akses ke semua sumber daya (*).

Di IAM, Anda dapat memberlakukan kebijakan berbasis sumber daya ke peran IAM agar prinsipal di akun lain dapat mengambil peran tersebut. Kebijakan berbasis sumber daya peran ini disebut kebijakan kepercayaan peran. Setelah mengambil peran tersebut, prinsipal yang diizinkan dapat menggunakan kredensial sementara yang dihasilkan untuk mengakses beberapa sumber daya dalam akun Anda. Akses ini ditetapkan dalam kebijakan izin berbasis identitas dari peran tersebut. Untuk mempelajari cara memungkinkan akses lintas akun menggunakan peran berbeda dengan mengizinkan akses lintas akun menggunakan kebijakan berbasis sumber daya lainnya, lihat Akses sumber daya lintas akun di IAM.

penting

Layanan lain dapat memengaruhi logika evaluasi kebijakan. Misalnya, AWS Organizations mendukung kebijakan kontrol layanan yang dapat diterapkan pada prinsipal satu atau beberapa akun. AWS Resource Access Manager mendukung fragmen kebijakan yang mengontrol tindakan yang diizinkan oleh prinsipal untuk dilakukan pada sumber daya yang dibagikan dengannya.

Menentukan apakah permintaan lintas akun diizinkan atau ditolak.

Untuk permintaan lintas akun, pemohon dalam AccountA tepercaya harus memiliki kebijakan berbasis identitas. Kebijakan yang harus memungkinkan mereka membuat permintaan ke sumber daya dalam AccountB kepercayaan. Selain itu, kebijakan berbasis sumber daya di AccountB harus mengizinkan pemohon di AccountA untuk mengakses sumber daya.

Saat Anda membuat permintaan lintas akun, AWS lakukan dua evaluasi. AWS mengevaluasi permintaan di akun kepercayaan dan akun tepercaya. Untuk informasi selengkapnya tentang bagaimana permintaan dievaluasi di satu akun, lihat Menentukan apakah permintaan diizinkan atau ditolak dalamsebuah akun.. Permintaan hanya diperbolehkan jika kedua evaluasi menghasilkan keputusan Allow.

Evaluasi lintas akun
  1. Jika prinsipal di satu akun mengajukan permintaan untuk mengakses sumber daya di akun lain, ini adalah permintaan lintas akun.

  2. Prinsipal mengajukan permohonan ada di akun tepercaya (AccountA). Saat AWS mengevaluasi akun ini, AWS memeriksa kebijakan berbasis identitas dan kebijakan apa pun yang dapat membatasi kebijakan berbasis identitas. Untuk informasi selengkapnya, lihat Mengevaluasi kebijakan dalam satu akun.

  3. Sumber daya yang diminta ada di akun kepercayaan (AccountB). Saat AWS mengevaluasi akun ini, AWS memeriksa kebijakan berbasis sumber daya yang dilampirkan ke sumber daya yang diminta dan setiap kebijakan yang dapat membatasi kebijakan berbasis sumber daya. Untuk informasi selengkapnya, lihat Mengevaluasi kebijakan dalam satu akun.

  4. AWS mengizinkan permintaan hanya jika kedua evaluasi kebijakan akun mengizinkan permintaan tersebut.

Contoh evaluasi kebijakan lintas akun

Contoh berikut menunjukkan skenario di mana pengguna dalam satu akun diberikan izin oleh kebijakan berbasis sumber daya di akun kedua.

Asumsikan bahwa Carlos adalah seorang pengembang dengan pengguna IAM bernama carlossalazar di akun 111111111111. Dia ingin menyimpan file ke bucket Amazon S3 Production-logs di akun 222222222222.

Juga asumsikan bahwa kebijakan berikut ini diberlakukan pada pengguna IAM carlossalazar.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "AllowS3ProductionObjectActions", "Effect": "Allow", "Action": "s3:*Object*", "Resource": "arn:aws:s3:::Production/*" }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::*log*", "arn:aws:s3:::*log*/*" ] } ] }

Pernyataan AllowS3ListRead dalam kebijakan ini memungkinkan Carlos melihat daftar semua bucket di Amazon S3. Pernyataan AllowS3ProductionObjectActions memungkinkan Carlos sepenuhnya mengakses objek di bucket Production. Pernyataan DenyS3Logs menolak akses Carlos ke setiap bucket S3 mana pun dengan log dalam namanya. Pernyataan ini juga menghalangi akses ke semua objek di bucket tersebut.

Selain itu, kebijakan berbasis sumber daya berikut (disebut kebijakan buket) diberlakukan untuk bucket Production di akun 222222222222.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject*", "s3:PutObject*", "s3:ReplicateObject", "s3:RestoreObject" ], "Principal": { "AWS": "arn:aws:iam::111111111111:user/carlossalazar" }, "Resource": "arn:aws:s3:::Production/*" } ] }

Kebijakan ini memungkinkan pengguna carlossalazar untuk mengakses objek di bucket Production. Dia dapat membuat dan mengedit, tetapi tidak menghapus objek dalam bucket. Dia tidak dapat mengelola bucket sendiri.

Saat Carlos meminta untuk menyimpan file ke bucket Production-logs, AWS menentukan kebijakan apa yang berlaku terhadap permintaan tersebut. Dalam hal ini, kebijakan berbasis identitas yang dilampirkan ke pengguna carlossalazar adalah satu-satunya kebijakan yang berlaku di akun 111111111111. Di akun 222222222222, tidak ada kebijakan berbasis sumber daya yang dilampirkan ke bucket Production-logs. Saat AWS mengevaluasi akun 111111111111, keputusan Deny dikembalikan. Ini karena pernyataan DenyS3Logs dalam kebijakan berbasis identitas secara eksplisit menolak akses ke bucket log. Untuk informasi selengkapnya tentang bagaimana permintaan dievaluasi di satu akun, lihat Menentukan apakah permintaan diizinkan atau ditolak dalamsebuah akun..

Karena permintaan tersebut secara tegas ditolak di dalam salah satu akun, keputusan akhir adalah menolak permintaan tersebut.

Permintaan untuk bucket log Produksi

Asumsikan bahwa Carlos kemudian menyadari kesalahannya dan mencoba menyimpan file ke ember. Production AWS pertama memeriksa akun 111111111111 untuk menentukan apakah permintaan diizinkan. Hanya kebijakan berbasis identitas yang berlaku, dan memungkinkan permintaan. AWS kemudian memeriksa akun222222222222. Hanya kebijakan berbasis sumber daya yang dilampirkan pada bucket Production yang berlaku, dan ini mengizinkan permintaan. Karena kedua akun mengizinkan permintaan tersebut, keputusan akhir adalah untuk mengizinkan permintaan tersebut.

Permintaan untuk bucket Produksi