View a markdown version of this page

Gunakan tombol kondisi VPC untuk mengontrol akses federasi - 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.

Gunakan tombol kondisi VPC untuk mengontrol akses federasi

Pengguna federasi dapat mengambil peran menggunakan AssumeRoleWithSAML atau AssumeRoleWithWebIdentity melalui titik akhir VPC. Saat melakukannya, Anda dapat menggunakan kunci VPC-specific kondisi dalam kebijakan kepercayaan peran atau dalam kebijakan kontrol sumber daya (RCP) untuk membatasi asal permintaan ini. Ini memberikan batas tingkat jaringan selain kontrol tingkat identitas dalam kebijakan kepercayaan.

Cara kerja kunci kondisi VPC untuk permintaan federasi

Kunci kondisi yang tersedia dalam konteks permintaan bergantung pada jalur jaringan permintaan federasi.

Ketersediaan kunci kondisi VPC berdasarkan jalur jaringan

Kunci syarat

Melalui titik akhir VPC

Melalui internet publik

Deskripsi

aws:SourceVpc

Ya

Tidak

ID VPC yang dilalui permintaan

aws:SourceVpcArn

Ya

Tidak

ARN dari VPC yang dilalui permintaan

aws:SourceVpce

Ya

Tidak

ID titik akhir VPC yang dilalui permintaan

aws:VpcSourceIp

Ya

Tidak

Alamat IP pribadi penelepon dalam VPC

aws:SourceIp

Tidak

Ya

Alamat IP publik penelepon

Jika kebijakan kepercayaan Anda menggunakanaws:SourceVpc,aws:SourceVpcArn, atau aws:SourceVpce dalam Allow pernyataan dan permintaan tidak datang melalui titik akhir VPC, kondisi tersebut tidak cocok dan secara AWS implisit menolak permintaan tersebut. Ini secara efektif membutuhkan permintaan gabungan untuk melintasi titik akhir VPC agar berhasil.

penting

Untuk permintaan yang dibuat melalui titik akhir VPC, aws:SourceIp tidak diisi. Gunakan aws:VpcSourceIp untuk IP-based pembatasan sebagai gantinya.

Kami merekomendasikan penggunaan aws:SourceVpcArn alih-alih aws:SourceVpc dalam kebijakan kepercayaan. ID VPC unik secara regional tetapi tidak unik secara global, sedangkan aws:SourceVpcArn mencakup Wilayah dan akun, memberikan identifikasi VPC yang unik secara global.

catatan

Nilai audience (aud) dalam contoh OIDC berikut digunakansts.amazonaws.com, yang merupakan default untuk Amazon EKS. Untuk penyedia OIDC lainnya, ganti ini dengan nilai audiens yang dikonfigurasi untuk aplikasi Anda (misalnya, ID klien atau URI aplikasi).

Contoh: Batasi federasi OIDC ke VPC tertentu

Kebijakan kepercayaan berikut memungkinkan penyedia OIDC untuk mengambil peran hanya ketika permintaan berasal dari VPC tertentu melalui titik akhir VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

AWS secara implisit menolak permintaan dari luar VPC yang ditentukan karena kondisinya tidak cocok. aws:SourceVpcArn Tidak diperlukan pernyataan penolakan eksplisit.

Contoh: Batasi federasi SAMP ke titik akhir VPC tertentu

Kebijakan kepercayaan berikut memungkinkan penyedia SAMP untuk mengambil peran hanya ketika permintaan datang melalui titik akhir VPC tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromVpce", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpce": "vpce-0abcdef1234567890" } } } ] }

Menggunakan aws:SourceVpce alih-alih aws:SourceVpc memberikan kontrol yang lebih terperinci ketika Anda memiliki beberapa titik akhir VPC di VPC yang sama dan ingin membatasi akses ke titik akhir tertentu.

Contoh: Batasi federasi OIDC dengan rentang IP pribadi dalam VPC

Kebijakan kepercayaan berikut membatasi federasi untuk permintaan yang berasal dari subnet tertentu dalam VPC. Gunakan aws:VpcSourceIp untuk IP-based pembatasan permintaan yang dibuat melalui titik akhir VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromSubnet", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "IpAddress": { "aws:VpcSourceIp": "10.0.1.0/24" } } } ] }
penting

Jangan gunakan aws:SourceIp dengan rentang IP pribadi untuk permintaan melalui titik akhir VPC. aws:SourceIpKuncinya tidak tersedia untuk permintaan titik akhir VPC. Gunakan aws:VpcSourceIp sebagai gantinya.

Contoh: Batasi federasi SAMP ke beberapa VPC

Kebijakan kepercayaan berikut memungkinkan penyedia SAMP untuk mengambil peran dari salah satu dari beberapa VPC. Ini berguna ketika organisasi Anda memiliki beberapa VPC di berbagai lingkungan atau Wilayah yang memerlukan akses gabungan ke peran yang sama.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromMultipleVpcs", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpcArn": [ "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111aaa11", "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-222bbb22" ] } } } ] }

Contoh: Menggabungkan VPC dan kondisi khusus penyedia

Anda dapat menggabungkan kunci kondisi VPC dengan kondisi khusus penyedia seperti audience (aud) dan subject (sub) untuk kontrol akses berbutir halus. Kebijakan kepercayaan berikut membatasi asumsi peran untuk pengguna federasi tertentu dan mengharuskan permintaan berasal dari VPC tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCUserFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "idp.example.com:sub": "user123", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

Ini menggabungkan kontrol tingkat identitas (membatasi untuk pengguna federasi tertentu) dengan kontrol tingkat jaringan (membatasi ke VPC tertentu), memberikan pertahanan secara mendalam.

Contoh: Gunakan RCP untuk membatasi akses federasi ke VPC tertentu

Kebijakan kontrol sumber daya (RCP) berikut menolak AssumeRoleWithSAML dan AssumeRoleWithWebIdentity meminta kecuali mereka berasal dari VPC tertentu. Tidak seperti kebijakan kepercayaan yang berlaku per peran, kebijakan kontrol sumber daya (RCP) berlaku di semua peran di akun target. Ini memberikan batas jaringan terpusat.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyFederatedAccessOutsideVpc", "Effect": "Deny", "Principal": "*", "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:AssumeRoleWithSAML" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "Null": { "aws:SourceVpcArn": "false" } } } ] }

NullKondisi memastikan penolakan hanya berlaku ketika aws:SourceVpcArn ada dalam konteks permintaan (yaitu, permintaan datang melalui titik akhir VPC tetapi dari VPC yang salah). Tanpa itu, permintaan melalui internet publik (di mana tidak aws:SourceVpcArn ada) juga akan ditolak olehStringNotEquals. Jika Anda menghapus Null cek, penolakan juga berlaku untuk permintaan yang tidak melintasi titik akhir VPC apa pun, termasuk permintaan melalui internet publik. Kami merekomendasikan pengujian secara menyeluruh sebelum menghapus Null pemeriksaan di lingkungan produksi.