

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

# Manajemen identitas dan akses untuk AWS CodeDeploy
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diberi wewenang* (memiliki izin) untuk menggunakan sumber daya. CodeDeploy IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**Topics**
+ [Audiens](#security_iam_audience)
+ [Mengautentikasi dengan identitas](#security_iam_authentication)
+ [Mengelola akses menggunakan kebijakan](#security_iam_access-manage)
+ [Bagaimana AWS CodeDeploy bekerja dengan IAM](security_iam_service-with-iam.md)
+ [AWS kebijakan terkelola (standar) untuk CodeDeploy](managed-policies.md)
+ [CodeDeploy pembaruan kebijakan AWS terkelola](managed-policies-updates.md)
+ [AWS CodeDeploy contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md)
+ [Memecahkan masalah AWS CodeDeploy identitas dan akses](security_iam_troubleshoot.md)
+ [CodeDeploy referensi izin](auth-and-access-control-permissions-reference.md)
+ [Pencegahan "confused deputy" lintas layanan](security_confused_deputy.md)

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda berdasarkan peran Anda:
+ **Pengguna layanan** - minta izin dari administrator Anda jika Anda tidak dapat mengakses fitur (lihat [Memecahkan masalah AWS CodeDeploy identitas dan akses](security_iam_troubleshoot.md))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Bagaimana AWS CodeDeploy bekerja dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [AWS CodeDeploy contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md))

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensyal identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensil dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), autentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang cara masuk, lihat [Cara masuk ke Akun AWS Anda](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dalam *Panduan Pengguna AWS Sign-In *.

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

### Akun AWS pengguna root
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Untuk tugas yang memerlukan kredensial pengguna root, lihat [Tugas yang memerlukan kredensial pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dalam *Panduan Pengguna IAM*. 

### Pengguna dan grup
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensial sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) menentukan kumpulan pengguna IAM dan mempermudah pengelolaan izin untuk pengguna dalam jumlah besar. Untuk mempelajari selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dalam *Panduan Pengguna IAM*.

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan menentukan izin saat dikaitkan dengan identitas atau sumber daya. AWS mengevaluasi kebijakan ini ketika kepala sekolah membuat permintaan. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Menggunakan kebijakan, administrator menentukan siapa yang memiliki akses ke apa dengan mendefinisikan **principal** mana yang dapat melakukan **tindakan** pada **sumber daya** apa, dan dalam **kondisi** apa.

Secara default, pengguna dan peran tidak memiliki izin. Administrator IAM membuat kebijakan IAM dan menambahkannya ke peran, yang kemudian dapat diambil oleh pengguna. Kebijakan IAM mendefinisikan izin terlepas dari metode yang Anda gunakan untuk melakukan operasinya.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang Anda lampirkan ke identitas (pengguna, grup, atau peran). Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, terhadap sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat berupa *kebijakan inline* (disematkan langsung ke dalam satu identitas) atau *kebijakan terkelola* (kebijakan mandiri yang dilampirkan pada banyak identitas). Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat [Pilih antara kebijakan terkelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dalam *Panduan Pengguna IAM*.

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang dapat menetapkan izin maksimum yang diberikan oleh jenis kebijakan yang lebih umum:
+ **Batasan izin** – Menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. Untuk informasi selengkapnya, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — Tentukan izin maksimum untuk organisasi atau unit organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dalam *Panduan Pengguna AWS Organizations *.
+ **Kebijakan kontrol sumber daya (RCPs)** — Tetapkan izin maksimum yang tersedia untuk sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan lanjutan yang diteruskan sebagai parameter saat membuat sesi sementara untuk peran atau pengguna terfederasi. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*.

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

# Bagaimana AWS CodeDeploy bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses CodeDeploy, Anda harus memahami fitur IAM mana yang tersedia untuk digunakan. CodeDeploy Untuk informasi selengkapnya, lihat [AWS layanan yang bekerja dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) di *Panduan Pengguna IAM*.

**Topics**
+ [CodeDeploy kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies)
+ [CodeDeploy kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)
+ [Otorisasi berdasarkan tag CodeDeploy](#security_iam_service-with-iam-tags)
+ [CodeDeploy Peran IAM](#security_iam_service-with-iam-roles)

## CodeDeploy kebijakan berbasis identitas
<a name="security_iam_service-with-iam-id-based-policies"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak serta kondisi di mana tindakan diizinkan atau ditolak. CodeDeploy mendukung tindakan, sumber daya, dan kunci kondisi. Untuk informasi tentang elemen yang Anda gunakan dalam kebijakan JSON, lihat [referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) di Panduan Pengguna *IAM*.

### Tindakan
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Sertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.

Tindakan kebijakan CodeDeploy menggunakan `codedeploy:` awalan sebelum tindakan. Misalnya, `codedeploy:GetApplication` izin memberikan izin pengguna untuk melakukan operasi. `GetApplication` Pernyataan kebijakan harus mencakup salah satu `Action` atau `NotAction` elemen. CodeDeploy mendefinisikan serangkaian tindakannya sendiri yang menggambarkan tugas yang dapat Anda lakukan dengan layanan ini.

Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma seperti berikut:

```
"Action": [
      "codedeploy:action1",
      "codedeploy:action2"
```

Anda dapat menentukan beberapa tindakan menggunakan wildcard (\$1). Misalnya, sertakan tindakan berikut untuk menentukan semua tindakan yang dimulai dengan kata`Describe`:

```
"Action": "ec2:Describe*"
```



Untuk daftar tindakan, lihat CodeDeploy [Tindakan yang Ditentukan oleh AWS CodeDeploy](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions) dalam *Panduan Pengguna IAM*.

Untuk tabel yang mencantumkan semua tindakan CodeDeploy API dan sumber daya yang diterapkan, lihat[CodeDeploy referensi izin](auth-and-access-control-permissions-reference.md).

### Sumber daya
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

```
"Resource": "*"
```



Misalnya, Anda dapat menunjukkan grup penyebaran (*myDeploymentGroup*) dalam pernyataan Anda menggunakan ARN sebagai berikut:

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"
```

Anda juga dapat menentukan semua grup penyebaran milik akun dengan menggunakan karakter wildcard (\$1) sebagai berikut:

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"
```

Untuk menentukan semua sumber daya, atau jika tindakan API tidak mendukung ARNs, gunakan karakter wildcard (\$1) dalam `Resource` elemen sebagai berikut:

```
"Resource": "*"
```

Beberapa tindakan CodeDeploy API menerima beberapa sumber daya (misalnya,`BatchGetDeploymentGroups`). Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma, sebagai berikut:

```
"Resource": ["arn1", "arn2"]
```

CodeDeploy menyediakan satu set operasi untuk bekerja dengan CodeDeploy sumber daya. Untuk daftar operasi yang tersedia, lihat [CodeDeploy referensi izin](auth-and-access-control-permissions-reference.md).

Untuk daftar jenis CodeDeploy sumber daya dan jenis sumber daya ARNs, lihat [Sumber Daya yang Ditentukan oleh AWS CodeDeploy](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html) dalam *Panduan Pengguna IAM*. Untuk informasi tentang tindakan di mana Anda dapat menentukan ARN dari setiap sumber daya, lihat [Tindakan yang Ditentukan oleh](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions). AWS CodeDeploy

#### CodeDeploy sumber daya dan operasi
<a name="arn-formats"></a>

Di CodeDeploy, sumber daya utama adalah grup penyebaran. Dalam kebijakan, Anda menggunakan Nama Sumber Daya Amazon (ARN) untuk mengidentifikasi sumber daya yang berlaku untuk kebijakan tersebut. CodeDeploy mendukung sumber daya lain yang dapat digunakan dengan grup penyebaran, termasuk aplikasi, konfigurasi penerapan, dan instance. Ini dirujuk sebagai sub-sumber daya. Sumber daya dan subsumber daya ini memiliki hubungan unik ARNs yang terkait dengannya. Untuk informasi selengkapnya, lihat [nama sumber daya Amazon (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di *Referensi Umum Amazon Web Services*.


| Tipe sumber daya | Format ARN | 
| --- | --- | 
| Grup deployment |  `arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name`  | 
| Aplikasi |  `arn:aws:codedeploy:region:account-id:application:application-name`  | 
| Konfigurasi deployment |  `arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name`   | 
| Instans |  `arn:aws:codedeploy:region:account-id:instance/instance-ID`  | 
|  Semua CodeDeploy sumber daya  |  `arn:aws:codedeploy:*`  | 
|  Semua CodeDeploy sumber daya yang dimiliki oleh akun yang ditentukan di Wilayah yang ditentukan  |  `arn:aws:codedeploy:region:account-id:*`  | 

**catatan**  
Sebagian besar layanan dalam AWS memperlakukan titik dua (:) atau garis miring (/) sebagai karakter yang sama di ARNs. Namun, CodeDeploy menggunakan kecocokan yang tepat dalam pola dan aturan sumber daya. Pastikan untuk menggunakan karakter ARN yang benar saat Anda membuat pola acara sehingga cocok dengan sintaks ARN di sumber daya.

### Kunci syarat
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

CodeDeploy tidak menyediakan kunci kondisi khusus layanan apa pun, tetapi mendukung penggunaan beberapa kunci kondisi global. Untuk informasi selengkapnya, lihat [Kunci konteks kondisi global AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam *Panduan Pengguna IAM*.



### Contoh
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Untuk melihat contoh kebijakan CodeDeploy berbasis identitas, lihat. [AWS CodeDeploy contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md)

## CodeDeploy kebijakan berbasis sumber daya
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeDeploy tidak mendukung kebijakan berbasis sumber daya. Untuk melihat contoh halaman kebijakan berbasis sumber daya terperinci, lihat [Menggunakan](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) kebijakan berbasis sumber daya untuk. AWS Lambda

## Otorisasi berdasarkan tag CodeDeploy
<a name="security_iam_service-with-iam-tags"></a>

CodeDeploy tidak mendukung penandaan sumber daya atau mengendalikan akses berdasarkan tag.

## CodeDeploy Peran IAM
<a name="security_iam_service-with-iam-roles"></a>

[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas di AWS akun Anda yang memiliki izin tertentu.

### Menggunakan kredensyal sementara dengan CodeDeploy
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Anda dapat menggunakan kredensial sementara untuk masuk dengan gabungan, menjalankan IAM role, atau menjalankan peran lintas akun. Anda memperoleh kredensil keamanan sementara dengan memanggil operasi AWS STS API seperti [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 

CodeDeploy mendukung penggunaan kredensyal sementara. 

### Peran terkait layanan
<a name="security_iam_service-with-iam-roles-service-linked"></a>

CodeDeploy tidak mendukung peran terkait layanan.

### Peran layanan
<a name="security_iam_service-with-iam-roles-service"></a>

Fitur ini memungkinkan layanan untuk menerima [peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) atas nama Anda. Peran ini mengizinkan layanan untuk mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran layanan muncul di AWS akun Anda dan dimiliki oleh akun. Ini berarti bahwa pengguna dapat mengubah izin untuk peran ini. Namun, melakukan hal itu dapat merusak fungsionalitas layanan.

CodeDeploy mendukung peran layanan. 

### Memilih peran IAM di CodeDeploy
<a name="security_iam_service-with-iam-roles-choose"></a>

Saat membuat sumber daya grup penyebaran CodeDeploy, Anda harus memilih peran yang CodeDeploy memungkinkan mengakses Amazon EC2 atas nama Anda. Jika sebelumnya Anda telah membuat peran layanan atau peran terkait layanan, CodeDeploy memberi Anda daftar peran yang dapat dipilih. Penting untuk memilih peran yang memungkinkan akses untuk memulai dan menghentikan instans EC2.

# AWS kebijakan terkelola (standar) untuk CodeDeploy
<a name="managed-policies"></a>

AWS mengatasi banyak kasus penggunaan umum dengan menyediakan kebijakan IAM mandiri yang dibuat dan dikelola oleh. AWS Kebijakan yang AWS dikelola ini memberikan izin untuk kasus penggunaan umum sehingga Anda dapat menghindari keharusan menyelidiki izin mana yang diperlukan. Untuk informasi selengkapnya, lihat [Kebijakan terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Daftar kebijakan AWS terkelola untuk CodeDeploy](#managed-policies-list)
+ [CodeDeploy kebijakan dan pemberitahuan terkelola](#notifications-permissions)

## Daftar kebijakan AWS terkelola untuk CodeDeploy
<a name="managed-policies-list"></a>

Kebijakan AWS terkelola berikut, yang dapat Anda lampirkan ke pengguna di akun Anda, khusus untuk CodeDeploy:
+ `AWSCodeDeployFullAccess`: Memberikan akses penuh ke CodeDeploy.

   
**catatan**  
AWSCodeDeployFullAccess tidak memberikan izin untuk operasi di layanan lain yang diperlukan untuk menyebarkan aplikasi Anda, seperti Amazon EC2 dan Amazon S3, hanya untuk operasi khusus untuk. CodeDeploy
+ `AWSCodeDeployDeployerAccess`: Memberikan izin untuk mendaftar dan menyebarkan revisi.

   
+ `AWSCodeDeployReadOnlyAccess`: Memberikan akses hanya-baca ke. CodeDeploy

   
+ <a name="ACD-policy"></a>`AWSCodeDeployRole`: Memungkinkan CodeDeploy untuk:
  + baca tag pada instans Anda atau identifikasi instans Amazon EC2 Anda dengan nama grup Amazon EC2 Auto Scaling
  + membaca, membuat, memperbarui, dan menghapus grup Amazon EC2 Auto Scaling, kait siklus hidup, kebijakan penskalaan, dan fitur kolam hangat
  + mempublikasikan informasi ke topik Amazon SNS
  + mengambil informasi tentang alarm Amazon CloudWatch 
  + membaca dan memperbarui sumber daya di layanan Elastic Load Balancing

  Kebijakan tersebut berisi kode berikut:

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "autoscaling:CompleteLifecycleAction",
          "autoscaling:DeleteLifecycleHook",
          "autoscaling:DescribeAutoScalingGroups",
          "autoscaling:DescribeLifecycleHooks",
          "autoscaling:PutLifecycleHook",
          "autoscaling:RecordLifecycleActionHeartbeat",
          "autoscaling:CreateAutoScalingGroup",
          "autoscaling:CreateOrUpdateTags",
          "autoscaling:UpdateAutoScalingGroup",
          "autoscaling:EnableMetricsCollection",
          "autoscaling:DescribePolicies",
          "autoscaling:DescribeScheduledActions",
          "autoscaling:DescribeNotificationConfigurations",
          "autoscaling:SuspendProcesses",
          "autoscaling:ResumeProcesses",
          "autoscaling:AttachLoadBalancers",
          "autoscaling:AttachLoadBalancerTargetGroups",
          "autoscaling:PutScalingPolicy",
          "autoscaling:PutScheduledUpdateGroupAction",
          "autoscaling:PutNotificationConfiguration",
          "autoscaling:DescribeScalingActivities",
          "autoscaling:DeleteAutoScalingGroup",
          "autoscaling:PutWarmPool",
          "ec2:DescribeInstances",
          "ec2:DescribeInstanceStatus",
          "ec2:TerminateInstances",
          "tag:GetResources",
          "sns:Publish",
          "cloudwatch:DescribeAlarms",
          "cloudwatch:PutMetricAlarm",
          "elasticloadbalancing:DescribeLoadBalancers",
          "elasticloadbalancing:DescribeLoadBalancerAttributes",
          "elasticloadbalancing:DescribeInstanceHealth",
          "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
          "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
          "elasticloadbalancing:DescribeTargetGroups",
          "elasticloadbalancing:DescribeTargetGroupAttributes",
          "elasticloadbalancing:DescribeTargetHealth",
          "elasticloadbalancing:RegisterTargets",
          "elasticloadbalancing:DeregisterTargets"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

------

   
+ `AWSCodeDeployRoleForLambda`: Memberikan CodeDeploy izin untuk mengakses AWS Lambda dan sumber daya lain yang diperlukan untuk penerapan.

   
+  `AWSCodeDeployRoleForECS`: Memberikan CodeDeploy izin untuk mengakses Amazon ECS dan sumber daya lain yang diperlukan untuk penerapan. 

   
+  `AWSCodeDeployRoleForECSLimited`: Memberikan CodeDeploy izin untuk mengakses Amazon ECS dan sumber daya lain yang diperlukan untuk penerapan dengan pengecualian berikut: 
  +  Di `hooks` bagian AppSpec file, hanya fungsi Lambda dengan nama yang dimulai dengan yang `CodeDeployHook_` dapat digunakan. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs). 
  +  Akses bucket S3 terbatas pada bucket S3 dengan tag registrasi,`UseWithCodeDeploy`, yang memiliki nilai. `true` Untuk informasi selengkapnya, lihat [Penandaan objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). 
+ <a name="EC2-policy"></a>`AmazonEC2RoleforAWSCodeDeployLimited`: Memberikan CodeDeploy izin untuk mendapatkan dan mencantumkan objek di bucket CodeDeploy Amazon S3. Kebijakan tersebut berisi kode berikut:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion",
                  "s3:ListBucket"
              ],
              "Resource": "arn:aws:s3:::*/CodeDeploy/*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:GetObject",
                  "s3:GetObjectVersion"
              ],
              "Resource": "*",
              "Condition": {
                  "StringEquals": {
                      "s3:ExistingObjectTag/UseWithCodeDeploy": "true"
                  }
              }
          }
      ]
  }
  ```

------

Izin untuk beberapa aspek proses penerapan diberikan kepada dua tipe peran lain yang bertindak atas nama: CodeDeploy
+ *Profil instans IAM* adalah peran IAM yang Anda lampirkan ke instans Amazon EC2 Anda. Profil ini mencakup izin yang diperlukan untuk mengakses bucket Amazon S3 GitHub atau repositori tempat aplikasi disimpan. Untuk informasi selengkapnya, lihat [Langkah 4: Buat profil instans IAM untuk instans Amazon EC2 Anda](getting-started-create-iam-instance-profile.md).
+ *Peran layanan adalah peran* IAM yang memberikan izin ke AWS layanan sehingga dapat mengakses sumber daya. AWS Kebijakan yang Anda lampirkan ke peran layanan menentukan AWS sumber daya yang dapat diakses layanan dan tindakan yang dapat dilakukan dengan sumber daya tersebut. Untuk CodeDeploy, peran layanan digunakan untuk hal berikut:
  + Untuk membaca tag yang diterapkan pada instans atau nama grup Amazon EC2 Auto Scaling yang terkait dengan instans. Hal ini memungkinkan CodeDeploy untuk mengidentifikasi instance yang dapat digunakan aplikasi.
  + Untuk melakukan operasi pada instans, Amazon EC2 Auto Scaling mengelompokkan, dan penyeimbang beban Elastic Load Balancing.
  + Untuk mempublikasikan informasi ke topik Amazon SNS sehingga notifikasi dapat dikirim saat penerapan atau kejadian instans tertentu terjadi.
  + Untuk mengambil informasi tentang CloudWatch alarm untuk mengatur pemantauan alarm untuk penyebaran.

  Untuk informasi selengkapnya, lihat [Langkah 2: Buat peran layanan untuk CodeDeploy](getting-started-create-service-role.md).

Anda juga dapat membuat kebijakan IAM khusus untuk memberikan izin untuk CodeDeploy tindakan dan sumber daya. Anda melampirkan kebijakan kustom ini ke peran IAM, lalu Anda menetapkan peran tersebut kepada pengguna atau grup yang memerlukan izin.

## CodeDeploy kebijakan dan pemberitahuan terkelola
<a name="notifications-permissions"></a>

CodeDeploy mendukung pemberitahuan untuk membuat pengguna sadar akan perubahan penting pada penerapan. Kebijakan terkelola untuk CodeDeploy menyertakan pernyataan kebijakan untuk fungsionalitas notifikasi. Untuk informasi selengkapnya, lihat [Apa itu notifikasi?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html).

### Izin untuk pemberitahuan dalam kebijakan terkelola akses penuh
<a name="notifications-fullaccess"></a>

Kebijakan terkelola `AWSCodeDeployFullAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna yang menerapkan kebijakan terkelola ini juga dapat membuat dan mengelola topik Amazon SNS untuk notifikasi, berlangganan dan berhenti berlangganan pengguna ke topik, serta mencantumkan topik yang akan dipilih sebagai target aturan notifikasi.

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
      "Sid" : "CodeStarNotificationsChatbotAccess",
      "Effect" : "Allow",
      "Action" : [
        "chatbot:DescribeSlackChannelConfigurations"
      ],
      "Resource" : "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    }
```

### Izin untuk notifikasi dalam kebijakan terkelola hanya-baca
<a name="notifications-readonly"></a>

Kebijakan terkelola `AWSCodeDeployReadOnlyAccess` mencakup pernyataan berikut untuk mengizinkan akses penuh ke notifikasi. Pengguna yang menerapkan kebijakan terkelola ini dapat melihat pemberitahuan untuk sumber daya, tetapi tidak dapat membuat, mengelola, atau berlangganan ke sumber daya tersebut. 

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules"
        ],
        "Resource": "*"
    }
```

### Izin untuk pemberitahuan dalam kebijakan terkelola lainnya
<a name="notifications-deployer"></a>

Kebijakan `AWSCodeDeployDeployerAccess` terkelola mencakup pernyataan berikut untuk memungkinkan pengguna membuat, memperbarui, berlangganan, dan melihat pemberitahuan untuk sumber daya, tetapi tidak dapat menghapusnya. Pengguna dengan kebijakan terkelola ini diterapkan juga dapat membuat dan mengelola topik Amazon SNS untuk pemberitahuan.

Kebijakan ini mencakup izin untuk melakukan hal berikut:
+ `codestar-notifications:CreateNotificationRule`— Memungkinkan kepala sekolah untuk membuat notifikasi.
+ `codestar-notifications:DescribeNotificationRule`— Memungkinkan kepala sekolah untuk mengambil informasi tentang pemberitahuan.
+ `codestar-notifications:UpdateNotificationRule`— Memungkinkan kepala sekolah untuk memperbarui pemberitahuan.
+ `codestar-notifications:Subscribe`— Memungkinkan kepala sekolah untuk berlangganan pembaruan pemberitahuan.
+ `codestar-notifications:Unsubscribe`— Memungkinkan kepala sekolah untuk berhenti berlangganan pembaruan pemberitahuan.
+ `codestar-notifications:ListNotificationRules`— Memungkinkan kepala sekolah untuk mengambil daftar aturan pemberitahuan.
+ `codestar-notifications:ListTargets`— Memungkinkan kepala sekolah untuk mengambil daftar target.
+ `codestar-notifications:ListTagsforResource`— Memungkinkan prinsipal untuk mengambil daftar tag.
+ `codestar-notifications:ListEventTypes`— Memungkinkan kepala sekolah untuk mengambil daftar jenis acara.
+ `chatbot:DescribeSlackChannelConfiguration`— Memungkinkan kepala sekolah untuk mengambil informasi tentang konfigurasi saluran Slack.
+ `sns:ListTopics`— Memungkinkan kepala sekolah untuk mengambil daftar topik Amazon SNS untuk pemberitahuan.

```
   {
      "Sid" : "CodeStarNotificationsReadWriteAccess",
      "Effect" : "Allow",
      "Action" : [
        "codestar-notifications:CreateNotificationRule",
        "codestar-notifications:DescribeNotificationRule",
        "codestar-notifications:UpdateNotificationRule",
        "codestar-notifications:Subscribe",
        "codestar-notifications:Unsubscribe"
      ],
      "Resource" : "*",
      "Condition" : {
        "ArnLike" : {
          "codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*:*:application:*"
        }
      }
    },
    {
      "Sid" : "CodeStarNotificationsListAccess",
      "Effect" : "Allow",
      "Action" : [
        "codestar-notifications:ListNotificationRules",
        "codestar-notifications:ListTargets",
        "codestar-notifications:ListTagsforResource",
        "codestar-notifications:ListEventTypes"
      ],
      "Resource" : "*"
    },
    {
      "Sid" : "CodeStarNotificationsChatbotAccess",
      "Effect" : "Allow",
      "Action" : [
        "chatbot:DescribeSlackChannelConfigurations"
      ],
      "Resource" : "*"
    },
    {
      "Sid" : "SNSTopicListAccess",
      "Effect" : "Allow",
      "Action" : [
        "sns:ListTopics"
      ],
      "Resource" : "*"
    }
```

Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses untuk CodeStar Pemberitahuan AWS](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html).

# CodeDeploy pembaruan kebijakan AWS terkelola
<a name="managed-policies-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola CodeDeploy sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan ke umpan RSS pada halaman CodeDeploy [Riwayat dokumen](document-history.md). 


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  `AWSCodeDeployDeployerAccess`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Memperbarui `codestar-notifications:NotificationsForResource` tindakan untuk mendukung perubahan validasi kebijakan IAM. Sumber daya asli `arn:aws:codedeploy:*` telah diperbarui ke`arn:aws:codedeploy:*:*:application:*`. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[Izin untuk pemberitahuan dalam kebijakan terkelola lainnya](managed-policies.md#notifications-deployer).  |  Desember 16, 2024  | 
|  `AWSCodeDeployReadOnlyAccess`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Memperbarui `codestar-notifications:NotificationsForResource` tindakan untuk mendukung perubahan validasi kebijakan IAM. Sumber daya asli `arn:aws:codedeploy:*` telah diperbarui ke`arn:aws:codedeploy:*:*:application:*`. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[Izin untuk notifikasi dalam kebijakan terkelola hanya-baca](managed-policies.md#notifications-readonly).  |  Desember 16, 2024  | 
|  `AWSCodeDeployFullAccess`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Memperbarui `codestar-notifications:NotificationsForResource` tindakan untuk mendukung perubahan validasi kebijakan IAM. Sumber daya asli `arn:aws:codedeploy:*` telah diperbarui ke`arn:aws:codedeploy:*:*:application:*`. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[Izin untuk pemberitahuan dalam kebijakan terkelola akses penuh](managed-policies.md#notifications-fullaccess).  |  Desember 16, 2024  | 
|  `AWSCodeDeployRole`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Menambahkan `elasticloadbalancing:DescribeLoadBalancerAttributes` dan `elasticloadbalancing:DescribeTargetGroupAttributes` tindakan ke pernyataan kebijakan untuk mendukung perubahan Elastic Load Balancing. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  16 Agustus 2023  | 
|  `AWSCodeDeployFullAccess`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Menambahkan `chatbot:ListMicrosoftTeamsChannelConfigurations` tindakan ke pernyataan kebijakan untuk mendukung perubahan pemberitahuan. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  11 Mei 2023  | 
|  `AWSCodeDeployRole`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Menambahkan ` autoscaling:CreateOrUpdateTags` tindakan ke pernyataan kebijakan untuk mendukung perubahan otorisasi Amazon EC2 Auto Scaling. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[AWSCodeDeployRole](managed-policies.md#ACD-policy).  |  3 Februari 2023  | 
|  `AmazonEC2RoleforAWSCodeDeployLimited`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Menghapus `s3:ListBucket` tindakan dari pernyataan kebijakan yang mencakup `s3:ExistingObjectTag/UseWithCodeDeploy` kondisi. Untuk informasi lebih lanjut tentang kebijakan ini, lihat[AmazonEC2RoleforAWSCodeDeployLimited](managed-policies.md#EC2-policy).  |  22 November 2021  | 
|  `AWSCodeDeployRole`kebijakan terkelola - Pembaruan kebijakan yang ada  |  Menambahkan `autoscaling:PutWarmPool` tindakan untuk mendukung [penambahan kolam hangat ke grup Amazon EC2 Auto](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html#add-warm-pool-console/ec2/userguide/ec2-auto-scaling-warm-pools.html#add-warm-pool-console) Scaling untuk penerapan biru/hijau. Menghapus tindakan duplikat yang tidak perlu.  |  18 Mei 2021  | 
|  CodeDeploy mulai melacak perubahan  |  CodeDeploy mulai melacak perubahan untuk kebijakan yang AWS dikelola.  |  18 Mei 2021  | 

# AWS CodeDeploy contoh kebijakan berbasis identitas
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna tidak memiliki izin untuk membuat atau memodifikasi CodeDeploy sumber daya. Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API. Anda harus membuat kebijakan IAM yang memberikan izin peran IAM untuk melakukan operasi API pada sumber daya tertentu yang mereka butuhkan. Anda kemudian harus melampirkan peran IAM 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*.

Dalam CodeDeploy, kebijakan berbasis identitas digunakan untuk mengelola izin ke berbagai sumber daya yang terkait dengan proses penyebaran. Anda dapat mengontrol akses ke jenis sumber daya berikut:
+ Aplikasi dan revisi aplikasi.
+ Penerapan.
+ Konfigurasi penerapan.
+ Instance dan instance lokal.

Kemampuan yang dikendalikan oleh kebijakan sumber daya bervariasi tergantung pada jenis sumber daya, seperti yang diuraikan dalam tabel berikut:


****  

|  Jenis sumber daya  |  Kemampuan  | 
| --- | --- | 
|  Semua  |  Lihat dan daftar detail tentang sumber daya  | 
|  Aplikasi Konfigurasi deployment Grup penyebaran  |  Buat sumber daya Hapus sumber daya  | 
|  Deployment  |  Buat deployment Hentikan penerapan  | 
|  Revisi aplikasi  |  Daftarkan revisi aplikasi  | 
|  Aplikasi Grup penyebaran  |  Perbarui sumber daya  | 
|  Instans on-premise  |  Tambahkan tag ke instance Hapus tag dari instance Daftar contoh Contoh deregister  | 

Contoh berikut menunjukkan kebijakan izin yang memungkinkan pengguna untuk menghapus grup penyebaran bernama **WordPress\$1DepGroup** terkait dengan aplikasi bernama **WordPress\$1App** di **us-west-2** Wilayah.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:DeleteDeploymentGroup"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentgroup:WordPress_App/WordPress_DepGroup"
      ]
    }
  ]
}
```

------

**Topics**
+ [Contoh kebijakan yang dikelola pelanggan](#customer-managed-policies)
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Menggunakan CodeDeploy konsol](#security_iam_id-based-policy-examples-console)
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)

## Contoh kebijakan yang dikelola pelanggan
<a name="customer-managed-policies"></a>

Di bagian ini, Anda dapat menemukan contoh kebijakan yang memberikan izin untuk berbagai CodeDeploy tindakan. Kebijakan ini berfungsi saat Anda menggunakan CodeDeploy API, AWS SDKs, atau AWS CLI. Anda harus memberikan izin tambahan untuk tindakan yang Anda lakukan di konsol. Untuk mempelajari lebih lanjut tentang pemberian izin konsol, lihat. [Menggunakan CodeDeploy konsol](#security_iam_id-based-policy-examples-console)



**catatan**  
Semua contoh menggunakan Wilayah Barat AS (Oregon) (`us-west-2`) dan berisi akun fiktif. IDs

 **Contoh**
+ [Contoh 1: Izinkan izin untuk melakukan CodeDeploy operasi di satu Wilayah](#identity-based-policies-example-1)
+ [Contoh 2: Izinkan izin untuk mendaftarkan revisi untuk satu aplikasi](#identity-based-policies-example-2)
+ [Contoh 3: Izinkan izin untuk membuat penerapan untuk satu grup penyebaran](#identity-based-policies-example-3)

### Contoh 1: Izinkan izin untuk melakukan CodeDeploy operasi di satu Wilayah
<a name="identity-based-policies-example-1"></a>

Contoh berikut memberikan izin untuk melakukan CodeDeploy operasi di **us-west-2** Wilayah saja:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:*"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:*"
      ]
    }
  ]
}
```

------

### Contoh 2: Izinkan izin untuk mendaftarkan revisi untuk satu aplikasi
<a name="identity-based-policies-example-2"></a>

Contoh berikut memberikan izin untuk mendaftarkan revisi aplikasi untuk semua aplikasi yang dimulai dengan **Test** di Wilayah: **us-west-2**

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:RegisterApplicationRevision"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:application:Test*"
      ]
    }
  ]
}
```

------

### Contoh 3: Izinkan izin untuk membuat penerapan untuk satu grup penyebaran
<a name="identity-based-policies-example-3"></a>

Contoh berikut memungkinkan izin untuk membuat penerapan untuk grup penyebaran bernama **WordPress\$1DepGroup** terkait dengan aplikasi bernama, konfigurasi penerapan kustom bernama **WordPress\$1App****ThreeQuartersHealthy**, dan revisi aplikasi apa pun yang terkait dengan aplikasi bernama. **WordPress\$1App** Semua sumber daya ini ada di **us-west-2** Wilayah.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:CreateDeployment"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentgroup:WordPress_App/WordPress_DepGroup"
      ]
    },
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:GetDeploymentConfig"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:deploymentconfig:ThreeQuartersHealthy"
      ]
    },
    {
      "Effect" : "Allow",
      "Action" : [
        "codedeploy:GetApplicationRevision"
      ],
      "Resource" : [
        "arn:aws:codedeploy:us-west-2:111122223333:application:WordPress_App"
      ]
    }
  ]
}
```

------

## 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 CodeDeploy sumber daya 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 AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan 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 ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. 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*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS 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 CodeDeploy konsol
<a name="security_iam_id-based-policy-examples-console"></a>

Jika Anda menggunakan CodeDeploy konsol, Anda harus memiliki set izin minimum yang memungkinkan Anda menjelaskan AWS sumber daya lain untuk AWS akun Anda. Untuk digunakan CodeDeploy di CodeDeploy konsol, Anda harus memiliki izin dari layanan berikut:
+ Amazon EC2 Auto Scaling
+ AWS CodeDeploy
+ Amazon Elastic Compute Cloud
+ Elastic Load Balancing
+ AWS Identity and Access Management
+ Amazon Simple Storage Service
+ Layanan Notifikasi Sederhana Amazon
+ Amazon CloudWatch

Jika Anda membuat kebijakan IAM yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana dimaksudkan untuk pengguna yang memiliki peran dengan kebijakan IAM tersebut. Untuk memastikan bahwa pengguna tersebut masih dapat menggunakan CodeDeploy konsol, lampirkan juga kebijakan `AWSCodeDeployReadOnlyAccess` terkelola ke peran yang ditetapkan kepada pengguna, seperti yang dijelaskan dalam[AWS kebijakan terkelola (standar) untuk CodeDeploy](managed-policies.md).

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau CodeDeploy API.

## Mengizinkan pengguna 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 ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

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

# Memecahkan masalah AWS CodeDeploy identitas dan akses
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan CodeDeploy dan IAM.

**Topics**
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses CodeDeploy sumber daya saya](#security_iam_troubleshoot-cross-account-access)

## Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan yang tidak diizinkan untuk melakukan `iam:PassRole` tindakan, kebijakan Anda harus diperbarui agar Anda dapat meneruskan peran CodeDeploy.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernama `marymajor` mencoba menggunakan konsol tersebut untuk melakukan tindakan di CodeDeploy. Namun, tindakan tersebut memerlukan layanan untuk mendapatkan izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut pada layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, kebijakan Mary harus diperbarui agar dia mendapatkan izin untuk melakukan tindakan `iam:PassRole` tersebut.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

## Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses CodeDeploy sumber daya saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran yang dapat digunakan pengguna di akun lain atau orang-orang di luar organisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa saja yang dipercaya untuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya atau daftar kontrol akses (ACLs), Anda dapat menggunakan kebijakan tersebut untuk memberi orang akses ke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa referensi berikut:
+ Untuk mempelajari apakah CodeDeploy mendukung fitur ini, lihat[Bagaimana AWS CodeDeploy bekerja dengan IAM](security_iam_service-with-iam.md).
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda di seluruh sumber daya Akun AWS yang Anda miliki, lihat [Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda kepada pihak ketiga Akun AWS, lihat [Menyediakan akses yang Akun AWS dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dalam *Panduan Pengguna IAM*.
+ Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat [Menyediakan akses ke pengguna terautentikasi eksternal (federasi identitas)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dalam *Panduan Pengguna IAM*.
+ *Untuk mempelajari perbedaan antara menggunakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Akses sumber daya lintas akun di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html).*

# CodeDeploy referensi izin
<a name="auth-and-access-control-permissions-reference"></a>

Gunakan tabel berikut saat menyiapkan kebijakan akses dan menulis izin yang dapat dilampirkan ke identitas IAM (kebijakan berbasis identitas). Tabel mencantumkan setiap operasi CodeDeploy API, tindakan yang dapat Anda berikan izin untuk melakukan tindakan, dan format ARN sumber daya yang akan digunakan untuk memberikan izin. Anda menentukan tindakan di bidang `Action` kebijakan. Anda menentukan ARN, dengan atau tanpa karakter wildcard (\$1), sebagai nilai sumber daya dalam bidang `Resource` kebijakan.

Anda dapat menggunakan kunci kondisi AWS-wide dalam CodeDeploy kebijakan Anda untuk menyatakan kondisi. Untuk daftar lengkap tombol AWS-wide, lihat Kunci yang [tersedia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) di *Panduan Pengguna IAM*.

Untuk menentukan tindakan, gunakan prefiks `codedeploy:` diikuti dengan nama operasi API (misalnya `codedeploy:GetApplication` dan `codedeploy:CreateApplication`). Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma (misalnya, `"Action": ["codedeploy:action1", "codedeploy:action2"]`).

**Menggunakan Karakter Wildcard**

Anda dapat menggunakan karakter wildcard (\$1) di ARN untuk menentukan beberapa tindakan atau sumber daya. Misalnya, `codedeploy:*` menentukan semua CodeDeploy tindakan dan `codedeploy:Get*` menentukan semua CodeDeploy tindakan yang dimulai dengan kata. `Get` Contoh berikut memberikan akses ke semua grup penyebaran dengan nama yang dimulai dengan `West` dan dikaitkan dengan aplikasi yang memiliki nama yang dimulai dengan. `Test` 

```
arn:aws:codedeploy:us-west-2:444455556666:deploymentgroup:Test*/West*
```

Anda dapat menggunakan wildcard dengan sumber daya berikut yang tercantum dalam tabel:
+ *application-name*
+ *deployment-group-name*
+ *deployment-configuration-name*
+ *instance-ID*

Wildcard tidak dapat digunakan dengan *region* atau*account-id*. Untuk informasi lebih lanjut tentang wildcard, lihat [Pengidentifikasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) dalam *Panduan Pengguna IAM*. 

**catatan**  
 Dalam ARN untuk setiap tindakan, titik dua (:) mengikuti sumber daya. Anda juga dapat mengikuti sumber daya dengan garis miring (/). Untuk informasi lebih lanjut, lihat [CodeDeploycontoh ARNs](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-codedeploy). 

Gunakan bilah gulir untuk melihat seluruh tabel.


**CodeDeploy Operasi API dan izin yang diperlukan untuk tindakan**  

| CodeDeploy Operasi API | Izin yang diperlukan (tindakan API) | Sumber daya | 
| --- | --- | --- | 
|  [AddTagsToOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AddTagsToOnPremisesInstances.html)  |  `codedeploy:AddTagsToOnPremisesInstances` Diperlukan untuk menambahkan tag ke satu atau beberapa instance lokal.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [BatchGetApplicationRevisions](https://docs.aws.amazon.com/codedeploy/latest/APIReference/BatchGetApplicationRevisions.html)  |  `codedeploy:BatchGetApplicationRevisions` Diperlukan untuk mendapatkan informasi tentang beberapa revisi aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [BatchGetApplications](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetApplications.html)  |  `codedeploy:BatchGetApplications` Diperlukan untuk mendapatkan informasi tentang beberapa aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: \$1 *region* *account-id*  | 
| [BatchGetDeploymentGroups](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeploymentGroups.html) |  `codedeploy:BatchGetDeploymentGroups` Diperlukan untuk mendapatkan informasi tentang beberapa grup penyebaran yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
| [BatchGetDeploymentInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeploymentInstances.html) | codedeploy:BatchGetDeploymentInstancesDiperlukan untuk mendapatkan informasi tentang satu atau beberapa instance dalam grup penyebaran. |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [BatchGetDeployments](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeployments.html)  |  `codedeploy:BatchGetDeployments` Diperlukan untuk mendapatkan informasi tentang beberapa penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [BatchGetOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetOnPremisesInstances.html)  |  `codedeploy:BatchGetOnPremisesInstances` Diperlukan untuk mendapatkan informasi tentang satu atau beberapa instans lokal.  |  arn:aws:codedeploy::: \$1 *region* *account-id*  | 
|  [ContinueDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html)  |  `codedeploy:ContinueDeployment` Diperlukan selama blue/green penerapan untuk memulai proses pendaftaran instans di lingkungan pengganti dengan penyeimbang beban Elastic Load Balancing.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [CreateApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateApplication.html)  |  `codedeploy:CreateApplication` Diperlukan untuk membuat aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [CreateDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html)¹  |  `codedeploy:CreateDeployment` Diperlukan untuk membuat penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [CreateDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentConfig.html)  |  `codedeploy:CreateDeploymentConfig` Diperlukan untuk membuat konfigurasi penerapan kustom yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentconfig: *region* *account-id* *deployment-configuration-name*   | 
|  [CreateDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html)  |  `codedeploy:CreateDeploymentGroup` Diperlukan untuk membuat grup penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [DeleteApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteApplication.html)  |  `codedeploy:DeleteApplication` Diperlukan untuk menghapus aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [DeleteDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentConfig.html)  |  `codedeploy:DeleteDeploymentConfig` Diperlukan untuk menghapus konfigurasi penerapan kustom yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentconfig: *region* *account-id* *deployment-configuration-name*   | 
|  [DeleteDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentGroup.html)  |  `codedeploy:DeleteDeploymentGroup` Diperlukan untuk menghapus grup penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [DeregisterOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeregisterOnPremisesInstance.html)  |  `codedeploy:DeregisterOnPremisesInstance` Diperlukan untuk membatalkan pendaftaran instans lokal.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [GetApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplication.html)  |  `codedeploy:GetApplication` Diperlukan untuk mendapatkan informasi tentang satu aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [GetApplicationRevision](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplicationRevision.html)  |  `codedeploy:GetApplicationRevision` Diperlukan untuk mendapatkan informasi tentang revisi aplikasi tunggal untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [GetDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeployment.html)  |  `codedeploy:GetDeployment` Diperlukan untuk mendapatkan informasi tentang penyebaran tunggal ke grup penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [GetDeploymentConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentConfig.html)  |  `codedeploy:GetDeploymentConfig` Diperlukan untuk mendapatkan informasi tentang konfigurasi penerapan tunggal yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentconfig: *region* *account-id* *deployment-configuration-name*   | 
|  [GetDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentGroup.html)  |  `codedeploy:GetDeploymentGroup` Diperlukan untuk mendapatkan informasi tentang grup penyebaran tunggal untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [GetDeploymentInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html)  |  `codedeploy:GetDeploymentInstance` Diperlukan untuk mendapatkan informasi tentang satu instance dalam penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [GetDeploymentTarget](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentTarget.html)  |  `codedeploy:GetDeploymentTarget` Diperlukan untuk mendapatkan informasi tentang target dalam penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [GetOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetOnPremisesInstance.html)  |  `codedeploy:GetOnPremisesInstance` Diperlukan untuk mendapatkan informasi tentang satu instans lokal.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [ListApplicationRevisions](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplicationRevisions.html)  |  `codedeploy:ListApplicationRevisions` Diperlukan untuk mendapatkan informasi tentang semua revisi aplikasi untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: \$1 *region* *account-id*  | 
|  [ListApplications](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplications.html)  |  `codedeploy:ListApplications` Diperlukan untuk mendapatkan informasi tentang semua aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: \$1 *region* *account-id*  | 
|  [ListDeploymentConfigs](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentConfigs.html)  |  `codedeploy:ListDeploymentConfigs` Diperlukan untuk mendapatkan informasi tentang semua konfigurasi penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentconfig: \$1 *region* *account-id*  | 
|  [ListDeploymentGroups](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentGroups.html)  |  `codedeploy:ListDeploymentGroups` Diperlukan untuk mendapatkan informasi tentang semua grup penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup: /\$1 *region* *account-id* *application-name*  | 
|  [ListDeploymentInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html)  |  `codedeploy:ListDeploymentInstances` Diperlukan untuk mendapatkan informasi tentang semua instance dalam penyebaran yang terkait dengan pengguna atau AWS akun.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [ListDeployments](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeployments.html)  |  `codedeploy:ListDeployments` Diperlukan untuk mendapatkan informasi tentang semua penerapan ke grup penyebaran yang terkait dengan pengguna, atau untuk mendapatkan semua penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [ListDeploymentTargets](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentTargets.html)  |  `codedeploy:ListDeploymentTargets` Diperlukan untuk mendapatkan informasi tentang semua target dalam penerapan yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [ListGitHubAccountTokenNames](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListGitHubAccountTokenNames.html)  |  `codedeploy:ListGitHubAccountTokenNames` Diperlukan untuk mendapatkan daftar nama-nama koneksi yang disimpan ke GitHub akun.   |  arn:aws:codedeploy::: \$1 *region* *account-id*  | 
|  [ListOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html)  |  `codedeploy:ListOnPremisesInstances` Diperlukan untuk mendapatkan daftar satu atau beberapa nama instans lokal.  |  arn:aws:codedeploy::: \$1 *region* *account-id*  | 
|  PutLifecycleEventHookExecutionStatus  |  `codedeploy:PutLifecycleEventHookExecutionStatus` Diperlukan untuk memberikan pemberitahuan status eksekusi peristiwa pengait siklus hidup.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [RegisterApplicationRevision](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterApplicationRevision.html)  |  `codedeploy:RegisterApplicationRevision` Diperlukan untuk mendaftarkan informasi tentang revisi aplikasi untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [RegisterOnPremisesInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterOnPremisesInstance.html)  |  `codedeploy:RegisterOnPremisesInstance` Diperlukan untuk mendaftarkan instans lokal dengan CodeDeploy.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [RemoveTagsFromOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RemoveTagsFromOnPremisesInstances.html)  |  `codedeploy:RemoveTagsFromOnPremisesInstances` Diperlukan untuk menghapus tag dari satu atau beberapa instance lokal.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [SkipWaitTimeForInstanceTermination](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_SkipWaitTimeForInstanceTermination.html)  |  `codedeploy:SkipWaitTimeForInstanceTermination` Diperlukan dalam blue/green penerapan untuk mengganti waktu tunggu yang ditentukan dan segera mulai menghentikan instance di lingkungan asli.  |  arn:aws:codedeploy: ::instance/ *region* *account-id* *instance-ID*  | 
|  [StopDeployment](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_StopDeployment.html)  |  `codedeploy:StopDeployment` Diperlukan untuk menghentikan penyebaran yang sedang berlangsung ke grup penyebaran untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  [UpdateApplication](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateApplication.html)³  |  `codedeploy:UpdateApplication` Diperlukan untuk mengubah informasi tentang aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::aplikasi: *region* *account-id* *application-name*  | 
|  [UpdateDeploymentGroup](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateDeploymentGroup.html)³  |  `codedeploy:UpdateDeploymentGroup` Diperlukan untuk mengubah informasi tentang grup penyebaran tunggal untuk aplikasi yang terkait dengan pengguna.  |  arn:aws:codedeploy: ::deploymentgroup:/*region**account-id**application-name**deployment-group-name*  | 
|  ¹ Saat Anda menentukan `CreateDeployment` izin, Anda juga harus menentukan `GetDeploymentConfig` izin untuk konfigurasi penerapan dan `GetApplicationRevision` atau `RegisterApplicationRevision` izin untuk revisi aplikasi. Selain itu, jika Anda menyertakan `overrideAlarmConfiguration` parameter dalam panggilan `CreateDeployment` API Anda, Anda harus menentukan `UpdateDeploymentGroup` izin. ² Berlaku untuk `ListDeployments` saat menyediakan grup penerapan tertentu, tetapi tidak saat mencantumkan semua penerapan yang terkait dengan pengguna. ³ Untuk`UpdateApplication`, Anda harus memiliki `UpdateApplication` izin untuk nama aplikasi lama dan baru. Untuk `UpdateDeploymentGroup` tindakan yang melibatkan perubahan nama grup penerapan, Anda harus memiliki `UpdateDeploymentGroup` izin untuk nama grup penerapan lama dan baru.   | 

# Pencegahan "confused deputy" lintas layanan
<a name="security_confused_deputy"></a>

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (layanan yang dipanggil) memanggil layanan lain (layanan yang dipanggil). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda. 

Kami merekomendasikan untuk menggunakan kunci konteks kondisi SourceAccount global [aws: SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) [dan aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dalam kebijakan sumber daya untuk membatasi izin yang CodeDeploy memberikan layanan lain ke sumber daya. Jika Anda menggunakan kunci konteks kondisi global dan nilai `aws:SourceArn` berisi ID akun, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama. Gunakan `aws:SourceArn` jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan `aws:SourceAccount` jika Anda ingin sumber daya apa pun di akun itu dikaitkan dengan penggunaan lintas layanan.

Untuk penerapan EC2/Lokal, AWS Lambda, dan Amazon ECS reguler, nilai harus `aws:SourceArn` menyertakan ARN CodeDeploy grup penerapan yang diizinkan untuk mengambil peran IAM. CodeDeploy 

Untuk [penerapan biru/hijau Amazon ECS yang dibuat melalui CloudFormation](deployments-create-ecs-cfn.md), nilai harus `aws:SourceArn` menyertakan tumpukan CloudFormation ARN yang diizinkan untuk mengambil peran IAM. CodeDeploy 

Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan `aws:SourceArn` kunci dengan ARN penuh sumber daya. Jika Anda tidak mengetahui ARN lengkap atau jika Anda menentukan beberapa sumber daya, gunakan karakter wildcard (\$1) untuk bagian yang tidak diketahui.

Misalnya, Anda dapat menggunakan kebijakan kepercayaan berikut dengan penerapan EC2/Lokal, AWS Lambda, atau Amazon ECS reguler:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "codedeploy.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:codedeploy:us-east-1:111122223333:deploymentgroup:myApplication/*"
                }
            }
        }
    ]
}
```

------

Untuk [penerapan biru/hijau Amazon ECS yang dibuat melalui CloudFormation](deployments-create-ecs-cfn.md), Anda dapat menggunakan:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "codedeploy.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyCloudFormationStackName/*"
                }
            }
        }
    ]
}
```

------