

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
<a name="reference_sts_vpc_condition_keys_federated"></a>

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.

**Topics**
+ [Cara kerja kunci kondisi VPC untuk permintaan federasi](#reference_sts_vpc_condition_keys_federated_how)
+ [Contoh: Batasi federasi OIDC ke VPC tertentu](#reference_sts_vpc_condition_keys_federated_example_oidc_vpc)
+ [Contoh: Batasi federasi SAMP ke titik akhir VPC tertentu](#reference_sts_vpc_condition_keys_federated_example_saml_vpce)
+ [Contoh: Batasi federasi OIDC dengan rentang IP pribadi dalam VPC](#reference_sts_vpc_condition_keys_federated_example_ip)
+ [Contoh: Batasi federasi SAMP ke beberapa VPC](#reference_sts_vpc_condition_keys_federated_example_saml_multi_vpc)
+ [Contoh: Menggabungkan VPC dan kondisi khusus penyedia](#reference_sts_vpc_condition_keys_federated_example_combined)
+ [Contoh: Gunakan RCP untuk membatasi akses federasi ke VPC tertentu](#reference_sts_vpc_condition_keys_federated_example_rcp)

## Cara kerja kunci kondisi VPC untuk permintaan federasi
<a name="reference_sts_vpc_condition_keys_federated_how"></a>

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 menggunakan`aws: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 digunakan`sts.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
<a name="reference_sts_vpc_condition_keys_federated_example_oidc_vpc"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_saml_vpce"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_ip"></a>

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:SourceIp`Kuncinya tidak tersedia untuk permintaan titik akhir VPC. Gunakan `aws:VpcSourceIp` sebagai gantinya.

## Contoh: Batasi federasi SAMP ke beberapa VPC
<a name="reference_sts_vpc_condition_keys_federated_example_saml_multi_vpc"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_combined"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_rcp"></a>

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"
                }
            }
        }
    ]
}
```

`Null`Kondisi 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 oleh`StringNotEquals`. 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.