

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

# Menyebarkan kontrol akses berbasis atribut preventif untuk subnet publik
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets"></a>

*Joel Alfredo Nunez Gonzalez dan Samuel Ortega Sancho, Amazon Web Services*

## Ringkasan
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-summary"></a>

Dalam arsitektur jaringan terpusat, inspeksi dan edge virtual private cloud (VPCs) memusatkan semua lalu lintas masuk dan keluar, seperti lalu lintas ke dan dari internet. Namun, hal ini dapat menimbulkan kemacetan atau mengakibatkan tercapainya batas kuota layanan AWS. Menerapkan keamanan tepi jaringan di samping beban kerja di dalamnya VPCs memberikan skalabilitas yang belum pernah terjadi sebelumnya dibandingkan dengan pendekatan terpusat yang lebih umum. Ini disebut arsitektur *tepi terdistribusi*.

Meskipun menyebarkan subnet publik di akun beban kerja dapat memberikan manfaat, itu juga memperkenalkan risiko keamanan baru karena meningkatkan permukaan serangan. Kami menyarankan agar Anda hanya menggunakan sumber daya Elastic Load Balancing (ELB), seperti Application Load Balancers, atau gateway NAT di subnet publik ini. VPCs Menggunakan penyeimbang beban dan gateway NAT dalam subnet publik khusus membantu Anda menerapkan kontrol halus untuk lalu lintas masuk dan keluar.

*Attribute-based access control* (ABAC) adalah praktik membuat izin berbutir halus berdasarkan atribut pengguna, seperti departemen, peran pekerjaan, dan nama tim. Untuk informasi selengkapnya, lihat [ABAC for AWS](https://aws.amazon.com/identity/attribute-based-access-control/). ABAC dapat menyediakan pagar pembatas untuk subnet publik di akun beban kerja. Ini membantu tim aplikasi menjadi gesit, tanpa mengorbankan keamanan infrastruktur.

Pola ini menjelaskan cara membantu mengamankan subnet publik dengan menerapkan ABAC melalui [kebijakan kontrol layanan (SCP) di AWS Organizations dan [kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) di AWS Identity and Access Management (IAM). Anda menerapkan SCP ke akun anggota organisasi atau unit organisasi (OU). Kebijakan ABAC ini memungkinkan pengguna untuk menerapkan gateway NAT di subnet target dan mencegahnya menerapkan sumber daya Amazon Elastic Compute Cloud (Amazon EC2) lainnya, seperti instance dan antarmuka jaringan elastis. EC2   

## Prasyarat dan batasan
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-prereqs"></a>

**Prasyarat**
+ Organisasi di AWS Organizations
+ Akses administratif ke akun root AWS Organizations
+ Di organisasi, akun anggota aktif atau OU untuk menguji SCP

**Batasan**
+ SCP dalam solusi ini tidak mencegah layanan AWS yang menggunakan peran terkait layanan menerapkan sumber daya di subnet target. Contoh layanan ini adalah Elastic Load Balancing (ELB), Amazon Elastic Container Service (Amazon ECS) Container Service (Amazon ECS), dan Amazon Relational Database Service (Amazon RDS). Untuk informasi selengkapnya, lihat [efek SCP pada izin](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) dalam dokumentasi AWS Organizations. Menerapkan kontrol keamanan untuk mendeteksi pengecualian ini.

## Arsitektur
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-architecture"></a>

**Tumpukan teknologi target**
+ SCP diterapkan ke akun AWS atau OU di AWS Organizations
+ Peran IAM berikut:
  + `AutomationAdminRole`— Digunakan untuk memodifikasi tag subnet dan membuat sumber daya VPC setelah menerapkan SCP
  + `TestAdminRole`— Digunakan untuk menguji apakah SCP mencegah prinsipal IAM lainnya, termasuk mereka yang memiliki akses administratif, dari melakukan tindakan yang disediakan untuk `AutomationAdminRole`

**Arsitektur target**

![Tag mencegah pengguna menyebarkan sumber daya selain gateway NAT di subnet publik](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/25f22f67-5bb6-42ac-8fd6-836e00c436f1/images/b8345c8c-0fc5-46a3-be60-c171979cf979.png)


1. Anda membuat peran `AutomationAdminRole` IAM di akun target. Peran ini memiliki izin untuk mengelola sumber daya jaringan. Perhatikan izin berikut yang eksklusif untuk peran ini:
   + Peran ini dapat membuat VPCs dan subnet publik.
   + Peran ini dapat memodifikasi penetapan tag untuk subnet target.
   + Peran ini dapat mengelola izinnya sendiri.

1. Di AWS Organizations, Anda menerapkan SCP ke akun AWS target atau OU. Untuk kebijakan sampel, lihat [Informasi tambahan](#deploy-preventative-attribute-based-access-controls-for-public-subnets-additional) dalam pola ini.

1. Seorang pengguna atau alat dalam CI/CD pipeline dapat mengambil `AutomationAdminRole` peran untuk menerapkan `SubnetType` tag ke subnet target.

1. Dengan mengasumsikan peran IAM lainnya, prinsipal IAM resmi di organisasi Anda dapat mengelola gateway NAT di subnet target dan sumber daya jaringan lain yang diizinkan di akun AWS, seperti tabel rute. Gunakan kebijakan IAM untuk memberikan izin ini. Untuk informasi selengkapnya, lihat [Identitas dan manajemen akses untuk Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security-iam.html).

**Otomatisasi dan skala**

Untuk membantu melindungi subnet publik, [tag AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) yang sesuai harus diterapkan. Setelah menerapkan SCP, gateway NAT adalah satu-satunya jenis EC2 sumber daya Amazon yang dapat dibuat oleh pengguna resmi di subnet yang memiliki tag. `SubnetType:IFA` (`IFA`berarti *aset yang menghadap internet*.) SCP mencegah pembuatan EC2 sumber daya Amazon lainnya, seperti instance dan antarmuka jaringan elastis. Kami menyarankan Anda menggunakan CI/CD pipeline yang mengasumsikan `AutomationAdminRole` peran untuk membuat sumber daya VPC sehingga tag ini diterapkan dengan benar ke subnet publik.

## Alat
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-tools"></a>

**Layanan AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat. Di AWS Organizations, Anda dapat menerapkan [kebijakan kontrol layanan (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html), yang merupakan jenis kebijakan yang dapat Anda gunakan untuk mengelola izin di organisasi Anda.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan sumber daya AWS ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur AWS yang dapat diskalakan.

## Epik
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-epics"></a>

### Terapkan SCP
<a name="apply-the-scp"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran admin pengujian.  | Buat peran IAM yang dinamai `TestAdminRole` di akun AWS target. Lampirkan kebijakan IAM terkelola **AdministratorAccess**AWS ke peran baru. Untuk petunjuk, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam dokumentasi IAM. | Administrator AWS | 
| Buat peran admin otomatisasi. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html)Berikut ini adalah contoh kebijakan kepercayaan yang dapat Anda gunakan untuk menguji peran dari `111122223333` akun.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::111122223333:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole",<br />            "Condition": {}<br />        }<br />    ]<br />}</pre> | Administrator AWS | 
| Buat dan lampirkan SCP. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 

### Uji SCP
<a name="test-the-scp"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat VPC atau subnet. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 
| Kelola tag. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 
| Menyebarkan sumber daya di subnet target. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 
| Kelola AutomationAdminRole peran. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan sumber daya yang digunakan. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deploy-preventative-attribute-based-access-controls-for-public-subnets.html) | Administrator AWS | 

## Sumber daya terkait
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-resources"></a>

**Dokumentasi AWS**
+ [Melampirkan dan melepaskan SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_attach.html)
+ [Membuat, memperbarui, dan menghapus SCPs](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html)
+ [Menerapkan kontrol akses berbasis atribut detektif untuk subnet publik dengan menggunakan AWS Config](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-detective-attribute-based-access-controls-for-public-subnets-by-using-aws-config.html)
+ [Kontrol detektif](https://docs.aws.amazon.com/prescriptive-guidance/latest/aws-security-controls/detective-controls.html)
+ [Referensi otorisasi layanan](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html)
+ [Menandai sumber daya AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
+ [Apa itu ABAC untuk AWS?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)

**Referensi AWS tambahan**
+ [Mengamankan tag sumber daya yang digunakan untuk otorisasi menggunakan Kebijakan Kontrol Layanan di AWS Organizations](https://aws.amazon.com/es/blogs/security/securing-resource-tags-used-for-authorization-using-service-control-policy-in-aws-organizations/) (postingan blog AWS)

## Informasi tambahan
<a name="deploy-preventative-attribute-based-access-controls-for-public-subnets-additional"></a>

Kebijakan kontrol layanan berikut adalah contoh yang dapat Anda gunakan untuk menguji pendekatan ini di organisasi Anda.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCActions",
      "Effect": "Deny",
      "Action": [
        "ec2:CreateVPC",
        "ec2:CreateRoute",
        "ec2:CreateSubnet",
        "ec2:CreateInternetGateway",
        "ec2:DeleteVPC",
        "ec2:DeleteRoute",
        "ec2:DeleteSubnet",
        "ec2:DeleteInternetGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "AllowNATGWOnIFASubnet",
      "Effect": "Deny",
      "NotAction": [
        "ec2:CreateNatGateway",
        "ec2:DeleteNatGateway"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIfExists": {
          "aws:ResourceTag/SubnetType": "IFA"
        },
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    },
    {
      "Sid": "DenyChangesToAdminRole",
      "Effect": "Deny",
      "NotAction": [
        "iam:GetContextKeysForPrincipalPolicy",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListInstanceProfilesForRole",
        "iam:ListRolePolicies",
        "iam:ListRoleTags"
      ],
      "Resource": [
        "arn:aws:iam::*:role/AutomationAdminRole"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"]
        }
      }
    }
  ]
}
```