

# Contoh kebijakan berbasis identitas AWS Well-Architected Tool
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau mengubah sumber daya AWS WA Tool. Mereka juga tidak dapat melakukan tugas menggunakan API Konsol Manajemen AWS, AWS CLI, atau AWS. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna atau grup yang memerlukan izin tersebut.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat Kebijakan pada Tab JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Menggunakan konsol AWS WA Tool](#security_iam_id-based-policy-examples-console)
+ [Izinkan para pengguna untuk melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Memberikan akses penuh ke beban kerja](#security_iam_id-based-policy-examples-full-access)
+ [Memberikan akses hanya baca ke beban kerja](#security_iam_id-based-policy-examples-readonly-access)
+ [Mengakses satu beban kerja](#security_iam_id-based-policy-examples-access-one-workload)
+ [Menggunakan kunci kondisi khusus layanan untuk Konektor AWS Well-Architected Tool untuk Jira](#security_iam_id-based-policy-examples-service-specific-condition-key)

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya AWS WA Tool yang ada di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan yang dikelola AWS dan beralih ke izin dengan hak akses paling rendah** – Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan *kebijakan yang dikelola AWS* yang memberikan izin untuk banyak kasus penggunaan umum. Kebijakan ini ada di Akun AWS Anda. Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola pelanggan AWS yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan kondisi untuk memberi akses ke tindakan layanan jika digunakan melalui Layanan AWS yang spesifik, sepertiCloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Wajibkan autentikasi multi-faktor (MFA)** – Jika Anda memiliki skenario yang memerlukan pengguna IAM atau pengguna root di Akun AWS Anda, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Menggunakan konsol AWS WA Tool
<a name="security_iam_id-based-policy-examples-console"></a>

Untuk mengakses konsol AWS Well-Architected Tool, Anda harus memiliki rangkaian izin minimum. Izin ini harus mengizinkan Anda untuk membuat daftar dan melihat detail tentang sumber daya AWS WA Tool di akun Akun AWS Anda. Jika Anda membuat kebijakan berbasis identitas yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya untuk entitas (pengguna atau peran) dengan kebijakan tersebut.

Untuk memastikan bahwa entitas tersebut masih dapat menggunakan konsol AWS WA Tool, lampirkan kebijakan yang dikelola AWS berikut ini ke entitas.

```
WellArchitectedConsoleReadOnlyAccess
```

Untuk memungkinkan kemampuan membuat, mengubah, dan menghapus beban kerja, lampirkan kebijakan terkelola AWS berikut ke entitas:

```
WellArchitectedConsoleFullAccess
```

Untuk informasi selengkapnya, lihat [Menambahkan Izin ke Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

Anda tidak perlu mengizinkan konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau API AWS. Sebagai alternatif, hanya izinkan akses ke tindakan yang cocok dengan operasi API yang sedang Anda coba lakukan.

## Izinkan para pengguna untuk melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan pada konsol atau menggunakan API AWS CLI atau AWS secara programatis.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Memberikan akses penuh ke beban kerja
<a name="security_iam_id-based-policy-examples-full-access"></a>

Dalam contoh ini, Anda ingin memberi pengguna di Akun AWS Anda akses penuh ke beban kerja Anda. Akses penuh memungkinkan pengguna melakukan semua tindakan di AWS WA Tool. Akses ini diperlukan untuk menentukan beban kerja, menghapus beban kerja, melihat beban kerja, dan memperbarui beban kerja.

------
#### [ JSON ]

****  

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

------

## Memberikan akses hanya baca ke beban kerja
<a name="security_iam_id-based-policy-examples-readonly-access"></a>

Dalam contoh ini, Anda ingin memberi pengguna di Akun AWS Anda akses hanya baca ke beban kerja Anda. Akses hanya baca hanya memungkinkan pengguna melihat beban kerja di AWS WA Tool.

------
#### [ JSON ]

****  

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

------

## Mengakses satu beban kerja
<a name="security_iam_id-based-policy-examples-access-one-workload"></a>

Dalam contoh ini, Anda ingin memberi pengguna di Akun AWS Anda akses hanya baca ke salah satu beban kerja Anda, `99999999999955555555555566666666`, di Wilayah `us-west-2`. ID akun Anda adalah `777788889999`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement" : [  
     {
     "Effect" : "Allow",
     "Action" : [
          "wellarchitected:Get*",
          "wellarchitected:List*"
     ],
     "Resource": "arn:aws:wellarchitected:us-west-2:777788889999:workload/999999999999555555555555666666666"
     }
   ]
}
```

------

## Menggunakan kunci kondisi khusus layanan untuk Konektor AWS Well-Architected Tool untuk Jira
<a name="security_iam_id-based-policy-examples-service-specific-condition-key"></a>

 Contoh ini menunjukkan cara menggunakan kunci kondisi khusus layanan `wellarchitected:JiraProjectKey` untuk mengontrol proyek Jira mana yang dapat ditautkan ke beban kerja di akun Anda. 

 Hal berikut ini menjelaskan penggunaan yang relevan untuk kunci kondisi: 
+  **`CreateWorkload:`** Saat Anda melampirkan `wellarchitected:JiraProjectKey` ke `CreateWorkload`, Anda dapat menentukan proyek Jira kustom mana yang dapat ditautkan ke beban kerja apa pun yang dibuat oleh pengguna. Misalnya, jika pengguna mencoba membuat beban kerja baru dengan proyek ABC, tetapi kebijakan hanya menentukan proyek PQR, tindakan ini akan ditolak. 
+  **`UpdateWorkload:`** Saat Anda melampirkan `wellarchitected:JiraProjectKey` ke `UpdateWorkload`, Anda dapat menentukan proyek Jira kustom mana yang dapat ditautkan ke beban kerja ini atau beban kerja apa pun. Misalnya, jika pengguna mencoba memperbarui beban kerja yang ada dengan proyek ABC, tetapi kebijakan menentukan proyek PQR, tindakan ini akan ditolak. Selain itu, jika pengguna memiliki beban kerja yang ditautkan ke proyek PQR dan mencoba memperbarui beban kerja yang akan ditautkan ke proyek ABC, tindakan ini akan ditolak. 
+  **`UpdateGlobalSettings:`** Saat Anda melampirkan `wellarchitected:JiraProjectKey` ke `UpdateGlobalSettings`, Anda dapat menentukan proyek Jira kustom mana yang dapat ditautkan ke Akun AWS. Pengaturan tingkat akun melindungi beban kerja di akun Anda yang tidak menimpa pengaturan Jira tingkat akun. Misalnya, jika pengguna memiliki akses `UpdateGlobalSettings`, dia tidak dapat menautkan beban kerja di akun Anda ke proyek apa pun yang tidak ditentukan dalam kebijakan. 

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": [
				"wellarchitected:UpdateGlobalSettings",
				"wellarchitected:CreateWorkload"
			],
			"Resource": "*",
			"Condition": {
				"StringEqualsIfExists": {
					"wellarchitected:JiraProjectKey": ["ABC, PQR"]
				}
			}
		},
		{
			"Sid": "VisualEditor1",
			"Effect": "Allow",
			"Action": [
				"wellarchitected:UpdateWorkload"
			],
			"Resource": "arn:aws:wellarchitected:us-east-1:111122223333:workload/example-workload",
			"Condition": {
				"StringEqualsIfExists": {
					"wellarchitected:JiraProjectKey": ["ABC, PQR"]
				}
			}
		}
	]
}
```

------