Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses - 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.

Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses

Kode AWS penegakan menentukan apakah permintaan yang dikirim AWS harus diizinkan atau ditolak. AWS mengevaluasi semua kebijakan yang berlaku pada konteks permintaan. Berikut ini adalah ringkasan logika evaluasi AWS kebijakan.

  • Secara default, semua permintaan ditolak secara implisit dengan pengecualian Pengguna root akun AWS, yang memiliki akses penuh.

  • Permintaan harus diizinkan secara eksplisit oleh kebijakan atau serangkaian kebijakan yang mengikuti logika evaluasi di bawah ini agar diizinkan.

  • Penolakan eksplisit akan mengabaikan izin eksplisit.

Bagan alir berikut ini memberikan perincian tentang cara pengambilan keputusan untuk akses akun tunggal dan lintas akun.

Bagan alir evaluasi
  • Evaluasi penolakan – Secara default, semua permintaan ditolak. Ini disebut penolakan implisit. Kode AWS penegakan mengevaluasi semua kebijakan dalam akun yang berlaku untuk permintaan. Ini meliputi AWS Organizations SCPs kebijakan berbasis sumber dayaRCPs, kebijakan berbasis identitas, batasan izin, dan kebijakan sesi. IAM Dalam semua kebijakan tersebut, kode penegakan mencari pernyataan Deny yang berlaku untuk permintaan. Ini disebut penolakan secara tegas. Jika kode penegakan menemukan bahkan satu penolakan secara eksplisit yang berlaku, kode penegakan memberikan keputusan akhir Tolak. Jika tidak ada penolakan secara tegas, evaluasi kode penegakan berlanjut.

  • Organizations RCPs — Kode penegakan mengevaluasi kebijakan pengendalian AWS Organizations sumber daya (RCPs) yang berlaku untuk permintaan. RCPsberlaku untuk sumber daya akun tempat RCPs dilampirkan. Jika kode penegakan tidak menemukan Allow pernyataan yang berlaku dalamRCPs, kode penegakan memberikan keputusan akhir Tolak. Perhatikan bahwa kebijakan AWS terkelola yang RCPFullAWSAccess disebut secara otomatis dibuat dan dilampirkan ke setiap entitas di organisasi Anda termasuk root, setiap OU, dan Akun AWS kapan RCPs diaktifkan. RCPFullAWSAccesstidak bisa dilepaskan, jadi akan selalu ada Allow pernyataan. Jika tidak adaRCP, atau jika RCP memungkinkan tindakan yang diminta, evaluasi kode penegakan berlanjut.

  • Organizations SCPs — Kode penegakan mengevaluasi kebijakan pengendalian AWS Organizations layanan (SCPs) yang berlaku untuk permintaan. SCPsberlaku untuk prinsipal akun tempat dilampirkan. SCPs Jika kode penegakan tidak menemukan Allow pernyataan yang berlaku dalamSCPs, kode penegakan memberikan keputusan akhir Tolak. Jika tidak adaSCP, atau jika SCP memungkinkan tindakan yang diminta, evaluasi kode penegakan berlanjut.

  • Kebijakan berbasis sumber daya — Dalam akun yang sama, kebijakan berbasis sumber daya berdampak pada evaluasi kebijakan secara berbeda tergantung pada jenis prinsipal yang mengakses sumber daya, dan prinsip yang diizinkan dalam kebijakan berbasis sumber daya. Bergantung pada jenis prinsipal, kebijakan berbasis sumber daya dapat menghasilkan keputusan akhirAllow, bahkan jika ada penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi. Allow

    Untuk sebagian besar sumber daya, Anda hanya memerlukan kebijakan berbasis identitas atau kebijakan berbasis sumber daya Allow untuk memberikan akses. IAMkebijakan kepercayaan peran dan kebijakan KMS utama adalah pengecualian untuk logika ini, karena mereka harus secara eksplisit mengizinkan akses untuk prinsipal.

    Logika kebijakan berbasis sumber daya berbeda dari jenis kebijakan lain jika prinsipal yang ditentukan adalah IAM pengguna, IAM peran, atau prinsipal sesi. Prinsipal sesi termasuk sesi IAM peran atau sesi pengguna IAM federasi. Jika kebijakan berbasis sumber daya memberikan izin langsung kepada IAM pengguna atau kepala sesi yang membuat permintaan, maka penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi tidak memengaruhi keputusan akhir.

    • IAMperan — Kebijakan berbasis sumber daya yang memberikan izin untuk IAM peran ARN dibatasi oleh penolakan implisit dalam batas izin atau kebijakan sesi. Anda dapat menentukan peran ARN dalam elemen Principal atau kunci aws:PrincipalArn kondisi. Dalam kedua kasus tersebut, kepala sekolah yang membuat permintaan adalah sesi IAM peran.

      Batas izin dan kebijakan sesi tidak membatasi izin yang diberikan menggunakan kunci aws:PrincipalArn kondisi dengan wildcard (*) di elemen Principal, kecuali kebijakan berbasis identitas berisi penolakan eksplisit. Untuk informasi selengkapnya, lihat Prinsipal peran IAM.

      Contoh peran ARN

      arn:aws:iam::111122223333:role/examplerole
    • IAMsesi peran — Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin untuk sesi peran memberikan ARN izin langsung ke sesi IAM peran yang diasumsikan. Izin yang diberikan langsung ke sesi tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi. Ketika Anda mengambil peran dan membuat permintaan, kepala sekolah yang membuat permintaan adalah sesi IAM peran ARN dan bukan peran itu sendiri. ARN Untuk informasi selengkapnya, lihat Kepala sesi peran.

      Contoh sesi peran ARN

      arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    • IAMpengguna — Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin kepada IAM pengguna ARN (yang bukan sesi pengguna gabungan) tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas atau batas izin.

      Contoh IAM pengguna ARN

      arn:aws:iam::111122223333:user/exampleuser
    • IAMsesi pengguna federasi — Sesi pengguna IAM federasi adalah sesi yang dibuat dengan menelepon. GetFederationToken Ketika pengguna federasi membuat permintaan, prinsipal yang membuat permintaan adalah pengguna federasi ARN dan bukan IAM pengguna yang ARN berfederasi. Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin kepada pengguna ARN gabungan memberikan izin langsung ke sesi. Izin yang diberikan langsung ke sesi tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi.

      Namun, jika kebijakan berbasis sumber daya memberikan izin kepada pengguna yang melakukan ARN federasi, maka permintaan yang dibuat oleh IAM pengguna federasi selama sesi dibatasi oleh penolakan implisit dalam batas izin atau kebijakan sesi.

      Contoh IAM sesi pengguna federasi ARN

      arn:aws:sts::111122223333:federated-user/exampleuser
  • Kebijakan berbasis identitas — Kode penegakan memeriksa kebijakan berbasis identitas untuk prinsipal. Untuk IAM pengguna, ini termasuk kebijakan pengguna dan kebijakan dari grup tempat pengguna berada. Jika tidak ada kebijakan berbasis identitas atau tidak ada pernyataan dalam kebijakan berbasis identitas yang memungkinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit dan kode penegakan memberikan keputusan akhir Tolak. Jika pernyataan apa pun dalam kebijakan berbasis identitas yang berlaku memungkinkan tindakan yang diminta, evaluasi kode berlanjut.

  • IAMBatas izin — Kode penegakan memeriksa apakah IAM entitas yang digunakan oleh prinsipal memiliki batas izin. Jika kebijakan yang digunakan untuk menetapkan batas izin tidak mengizinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit. Kode penegakan memberikan keputusan akhir Tolak. Jika tidak ada batas izin, atau jika batas izin memungkinkan tindakan yang diminta, evaluasi kode berlanjut.

  • Kebijakan sesi — Kode penegakan memeriksa apakah prinsipal adalah kepala sesi. Prinsipal sesi termasuk sesi IAM peran atau sesi pengguna IAM federasi. Jika kepala sekolah bukan kepala sesi, kode penegakan mengembalikan keputusan akhir Izinkan.

    Untuk kepala sekolah sesi, kode penegakan memeriksa apakah kebijakan sesi disahkan dalam permintaan. Anda dapat meneruskan kebijakan sesi sambil menggunakan AWS CLI atau AWS API untuk mendapatkan kredenal sementara untuk peran atau pengguna IAM gabungan. Jika Anda tidak lulus kebijakan sesi, kebijakan sesi default akan dibuat dan kode penegakan akan mengembalikan keputusan akhir Izinkan.

    • Jika kebijakan sesi ada dan tidak mengizinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit. Kode penegakan memberikan keputusan akhir Tolak.

    • Kode penegakan memeriksa apakah kepala sekolah adalah sesi peran. Jika kepala sekolah adalah sesi peran, maka permintaan tersebut Diizinkan. Jika tidak, permintaan secara implisit ditolak dan kode penegakan mengembalikan keputusan akhir Deny.

    • Jika kebijakan sesi ada dan memungkinkan tindakan yang diminta, maka kode penegakan memberikan keputusan akhir Izinkan.