

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

# Kontrol akses ke AWS STS dengan kebijakan titik akhir VPC
<a name="reference_sts_vpc_endpoint_policies"></a>

Saat Anda membuat titik akhir VPC antarmuka untuk AWS Security Token Service (AWS STS), Anda dapat melampirkan kebijakan titik akhir. Kebijakan mengontrol prinsipal mana yang dapat menggunakan titik akhir dan AWS STS tindakan apa yang dapat mereka lakukan. Jika Anda tidak melampirkan kebijakan, titik akhir menggunakan kebijakan default yang memungkinkan akses tak terbatas ke semua AWS STS tindakan untuk semua prinsipal.

Kebijakan titik akhir VPC tidak memberikan izin sendiri. Mereka bertindak sebagai batas tambahan yang bekerja bersama kebijakan lainnya. Kebijakan titik akhir dan kebijakan pemanggil yang berlaku harus mengizinkan permintaan agar berhasil.

Untuk informasi selengkapnya tentang kebijakan titik akhir VPC, lihat Meng [ ontrol akses ke titik akhir VPC menggunakan kebijakan titik akhir ](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) di Panduan Pengguna * Amazon VPC. *

**Topics**
+ [Kebijakan VPC endpoint default](#reference_sts_vpc_endpoint_policies_default)
+ [Pertimbangan penting untuk AWS STS Kebijakan VPC endpoint](#reference_sts_vpc_endpoint_policies_considerations)
+ [Kunci kondisi tersedia untuk AWS STS Kebijakan VPC endpoint](#reference_sts_vpc_endpoint_policies_condition_keys)
+ [Contoh: Izinkan semua AWS STS Tindakan untuk organisasi Anda](#reference_sts_vpc_endpoint_policies_example_org)
+ [Contoh: Izinkan semua AWS STS tindakan untuk akun tertentu](#reference_sts_vpc_endpoint_policies_example_accounts)
+ [Contoh: Batasi ke spesifik AWS STS tindakan](#reference_sts_vpc_endpoint_policies_example_actions)
+ [Contoh: Menolak akses non-organisasi sambil mengizinkan federasi](#reference_sts_vpc_endpoint_policies_example_deny)

## Kebijakan VPC endpoint default
<a name="reference_sts_vpc_endpoint_policies_default"></a>

Jika Anda tidak melampirkan kebijakan kustom saat membuat titik akhir, AWS lampirkan kebijakan default berikut. Kebijakan ini memungkinkan akses tak terbatas ke titik akhir.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

Untuk membatasi akses ke titik akhir, lampirkan kebijakan titik akhir khusus.

## Pertimbangan penting untuk AWS STS Kebijakan VPC endpoint
<a name="reference_sts_vpc_endpoint_policies_considerations"></a>

AWS STS menangani permintaan dari dua jenis penelepon yang berbeda secara fundamental. Kebijakan titik akhir VPC Anda harus memperhitungkan kedua jenis untuk menghindari pemblokiran permintaan yang sah secara tidak sengaja.

**Prinsipal yang diautentikasi AWS **  
Pengguna IAM dan peran IAM yang menandatangani permintaan dengan Sig AWS nature Version 4 (SIGv4). Penelepon ini memiliki kunci kondisi standar seperti`aws:PrincipalOrgID`,`aws:PrincipalAccount`, dan `aws:PrincipalArn` tersedia dalam konteks permintaan.

**Penelepon federasi**  
Prinsip SAML 2.0 dan OpenID Connect (OIDC) yang memanggil atau. `AssumeRoleWithSAML` `AssumeRoleWithWebIdentity` Pemanggil ini mengotentikasi dengan pernyataan SAML atau Token Web JSON (JWT), bukan tanda tangan SigV4. Karena mereka tidak memiliki AWS identitas pada saat permintaan, konteks permintaan tidak menyertakan kunci kondisi berbasis utama seperti`aws:PrincipalOrgID`,`aws:PrincipalAccount`, dan`aws:PrincipalArn`.

**penting**  
Jika kebijakan titik akhir VPC Anda hanya mengandalkan `aws:PrincipalOrgID` untuk mengizinkan akses, federasi `AssumeRoleWithSAML` dan `AssumeRoleWithWebIdentity` panggilan ditolak secara implisit karena kunci kondisi tidak ada untuk non-prinsipal.AWS 

### Bagaimana AWS STS mengevaluasi kebijakan titik akhir VPC untuk pemanggil federasi
<a name="reference_sts_vpc_endpoint_policies_federated_evaluation"></a>

Saat pemanggil federasi memanggil `AssumeRoleWithSAML` atau `AssumeRoleWithWebIdentity` melalui titik akhir VPC, berikut ini berlaku:
+ Penelepon bukanlah kepala sekolah AWS . Kunci kondisi seperti `aws:PrincipalOrgID``aws:PrincipalAccount`,, dan tidak `aws:PrincipalArn` tersedia dalam konteks permintaan.
+ Penelepon federasi tidak memiliki kunci kondisi `aws:PrincipalIsAWSService` dalam konteks permintaan.
+ Peran yang diasumsikan adalah AWS sumber daya. Resource-based kunci kondisi seperti `aws:ResourceOrgID` dan `aws:ResourceAccount` tersedia dan merujuk ke peran target.
+ Kebijakan kepercayaan peran tetap menjadi gerbang otorisasi utama untuk akses federasi. Kebijakan titik akhir VPC menyediakan batas tingkat jaringan tambahan.

Sebaiknya gunakan `aws:ResourceOrgID` atau `aws:ResourceAccount` saat menulis pernyataan kebijakan titik akhir VPC yang harus berlaku untuk pemanggil federasi, karena pemanggil ini tidak memiliki kunci kondisi berbasis utama yang tersedia.

## Kunci kondisi tersedia untuk AWS STS Kebijakan VPC endpoint
<a name="reference_sts_vpc_endpoint_policies_condition_keys"></a>

Tabel berikut menunjukkan kunci kondisi yang umum digunakan dan ketersediaannya dalam konteks permintaan untuk setiap jenis pemanggil saat membuat permintaan melalui titik akhir AWS STS VPC. Kunci kondisi tambahan tersedia di luar yang tercantum di sini.


**Ketersediaan kunci kondisi berdasarkan jenis penelepon**  

| Kunci syarat | Prinsipal yang diautentikasi AWS  | Penelepon federasi | Deskripsi | 
| --- | --- | --- | --- | 
| `aws:PrincipalOrgID` | Ya | Tidak | ID organisasi dari kepala sekolah yang menelepon | 
| `aws:PrincipalAccount` | Ya | Tidak | ID akun dari kepala sekolah yang menelepon | 
| `aws:PrincipalArn` | Ya | Tidak | ARN kepala sekolah yang menelepon | 
| `aws:PrincipalIsAWSService` | Ya (dievaluasi menjadi salah) | Tidak (kunci tidak ada) | Apakah penelepon adalah kepala AWS layanan | 
| `aws:ResourceOrgID` | Ya | Ya | ID organisasi dari akun yang memiliki sumber daya yang diminta | 
| `aws:ResourceAccount` | Ya | Ya | ID akun yang memiliki sumber daya yang diminta | 

**catatan**  
Untuk prinsipal yang AWS diautentikasi (pengguna dan peran IAM), `aws:PrincipalIsAWSService` hadir dalam konteks permintaan dan dievaluasi menjadi salah. Untuk pemanggil federasi, kunci ini tidak ada sepenuhnya dari konteks permintaan. Kondisi yang memeriksa `"Bool": {"aws:PrincipalIsAWSService": "false"}` tidak cocok dengan pemanggil federasi karena kunci tidak ada.

## Contoh: Izinkan semua AWS STS Tindakan untuk organisasi Anda
<a name="reference_sts_vpc_endpoint_policies_example_org"></a>

Kebijakan titik akhir berikut membatasi titik akhir AWS STS VPC Anda ke organisasi Anda sambil mendukung akses federasi. Ini memungkinkan semua AWS STS tindakan untuk prinsipal yang diautentikasi di organisasi Anda dan secara terpisah mengizinkan pemanggil federasi untuk mengambil peran dalam organisasi Anda. Penelepon federasi (`AssumeRoleWithSAML`dan`AssumeRoleWithWebIdentity`) memerlukan pernyataan terpisah karena mereka tidak memiliki `aws:PrincipalOrgID` konteks permintaan.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowOrganizationPrincipals",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-exampleorgid"
                }
            }
        },
        {
            "Sid": "AllowFederatedAssumeRole",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "sts:AssumeRoleWithSAML",
                "sts:AssumeRoleWithWebIdentity"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceOrgID": "o-exampleorgid"
                }
            }
        }
    ]
}
```

Pernyataan pertama digunakan `"Principal": {"AWS": "*"}` dengan untuk mengiz `aws:PrincipalOrgID` inkan prinsipal yang diautenti AWS kasi dari organisasi Anda. Pernyataan kedua digunakan `"Principal": "*"` untuk mencocokkan pemanggil federasi dan membatasi peran target untuk digunakan organisasi Anda. `aws:ResourceOrgID` Kebijakan kepercayaan peran tetap menjadi kontrol utama di mana identitas federasi dapat mengambil peran mana.

Untuk informasi selengkapnya tentang menerapkan kontrol perimeter jaringan, lihat Mem [ bangun perimeter [ data AWS](https://github.com/aws-samples/data-perimeter-policy-examples) dan contoh kebijakan perimeter data ](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html) di GitHub situs web.

## Contoh: Izinkan semua AWS STS tindakan untuk akun tertentu
<a name="reference_sts_vpc_endpoint_policies_example_accounts"></a>

Kebijakan titik akhir berikut mengizinkan semua AWS STS tindakan untuk kepala sekolah di akun tertentu. Gunakan kebijakan ini jika akun Anda bukan bagian dari organisasi. Penelepon federasi diizinkan dalam pernyataan terpisah karena mereka tidak memiliki `aws:PrincipalAccount` konteks permintaan.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSpecificAccountPrincipals",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalAccount": [
                        "111122223333",
                        "444455556666"
                    ]
                }
            }
        },
        {
            "Sid": "AllowFederatedAssumeRole",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "sts:AssumeRoleWithSAML",
                "sts:AssumeRoleWithWebIdentity"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": [
                        "111122223333",
                        "444455556666"
                    ]
                }
            }
        }
    ]
}
```

Pernyataan pertama menggunakan `"Principal": {"AWS": "*"}` with `aws:PrincipalAccount` untuk mengizinkan prinsipal yang di AWS autentikasi dari akun yang ditentukan. Pernyataan kedua digunakan `"Principal": "*"` untuk mencocokkan pemanggil federasi dan membatasi peran target ke akun yang sama menggunakan. `aws:ResourceAccount` Kebijakan kepercayaan peran tetap menjadi kontrol utama di mana identitas federasi dapat mengambil peran mana.

## Contoh: Batasi ke spesifik AWS STS tindakan
<a name="reference_sts_vpc_endpoint_policies_example_actions"></a>

Kebijakan titik akhir berikut hanya mengizinkan `AssumeRole` untuk prinsipal yang diautentikasi dan `AssumeRoleWithSAML` untuk pemanggil federasi, keduanya dicakup untuk peran dalam organisasi Anda.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAssumeRoleByOrgPrincipals",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-exampleorgid"
                }
            }
        },
        {
            "Sid": "AllowSAMLFederation",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "sts:AssumeRoleWithSAML",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceOrgID": "o-exampleorgid"
                }
            }
        }
    ]
}
```

Kebijakan ini memblokir AWS STS tindakan lain seperti`GetCallerIdentity`,`GetSessionToken`, dan `AssumeRoleWithWebIdentity` melalui titik akhir ini. Sesuaikan `Action` elemen agar sesuai dengan kebutuhan Anda.

## Contoh: Menolak akses non-organisasi sambil mengizinkan federasi
<a name="reference_sts_vpc_endpoint_policies_example_deny"></a>

Kebijakan titik akhir berikut menggunakan penolakan eksplisit untuk memblokir prinsipal yang diautentikasi di luar organisasi Anda, sambil mempertahankan akses untuk pemanggil federasi. Pendekatan ini dimulai dengan izin yang luas dan menambahkan pernyataan penolakan yang ditargetkan.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAll",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "*"
        },
        {
            "Sid": "DenyNonOrgPrincipals",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:PrincipalOrgID": "o-exampleorgid"
                }
            }
        }
    ]
}
```

Pernyataan penolakan menggunakan`"Principal": {"AWS": "*"}`, yang hanya mencakup prinsipal yang diautentikasi AWS . Penelepon federasi (SAML dan OIDC) bukan prinsipal dan tidak AWS dicocokkan oleh `Principal` elemen ini, jadi penolakan tidak berlaku untuk mereka. Pendekatan ini menghindari perlunya kompleks `Null` atau `Bool` kondisi untuk mengukir pengecualian untuk penelepon federasi.

**catatan**  
Pernyataan pertama memungkinkan semua tindakan untuk semua kepala sekolah. Penolakan dalam pernyataan kedua diutamakan untuk prinsipal yang diautentikasi di AWS luar organisasi Anda. Penelepon federasi diizinkan oleh pernyataan pertama dan tidak terpengaruh oleh penolakan karena `Principal` elemen dalam pernyataan penolakan tidak cocok dengan mereka.