

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

# Kebijakan IAM untuk akses berbasis tanda ke klaster dan EMR Notebooks
<a name="emr-fine-grained-cluster-access"></a>

Anda dapat menggunakan syarat di kebijakan berbasis identitas Anda untuk mengontrol akses ke klaster dan EMR Notebooks berdasarkan tanda.

Untuk informasi lebih lanjut tentang penambahan tanda ke klaster, lihat [Klaster EMR penandaan](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html). 

Contoh berikut menunjukkan skenario yang berbeda dan cara untuk menggunakan operator syarat dengan kunci syarat Amazon EMR. Pernyataan kebijakan IAM ini dimaksudkan untuk tujuan demonstrasi saja dan tidak boleh digunakan di lingkungan produksi. Ada beberapa cara untuk menggabungkan pernyataan kebijakan untuk memberikan dan menolak izin sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya tentang perencanaan dan pengujian kebijakan IAM, lihat [Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

**penting**  
Secara eksplisit menolak izin untuk tindakan penandaan adalah pertimbangan penting. Hal ini mencegah pengguna dari penandaan sumber daya dan dengan demikian memberikan sendiri izin yang tidak ingin Anda berikan. Jika Anda tidak menolak tindakan penandaan untuk sumber daya, pengguna dapat memodifikasi tag dan menghindari maksud kebijakan berbasis tag.

## Contoh pernyataan kebijakan berbasis identitas untuk klaster
<a name="emr-cluster-access-resourcetag"></a>

Contoh berikut menunjukkan kebijakan izin berbasis identitas yang digunakan untuk mengontrol tindakan yang diizinkan dengan klaster EMR.

**penting**  
Tindakan `ModifyInstanceGroup` di Amazon EMR tidak mengharuskan Anda menentukan ID klaster. Untuk alasan itu, menolak tindakan ini berdasarkan tanda klaster memerlukan pertimbangan tambahan. Untuk informasi selengkapnya, lihat [Menyangkal ModifyInstanceGroup tindakan di Amazon EMR](emr-cluster-deny-modifyinstancegroup.md).

**Topics**
+ [Izinkan tindakan hanya pada klaster dengan nilai tanda tertentu](#emr-cluster-access-example-tagvalue)
+ [Memerlukan penandaan klaster ketika sebuah klaster dibuat](#emr-cluster-access-example-require-tagging)
+ [Izinkan tindakan pada klaster dengan tanda tertentu, terlepas dari nilai tanda](#emr-cluster-access-example-tag)

### Izinkan tindakan hanya pada klaster dengan nilai tanda tertentu
<a name="emr-cluster-access-example-tagvalue"></a>

Contoh berikut menunjukkan kebijakan yang mengizinkan pengguna melakukan tindakan berdasarkan tanda klaster `department` dengan nilai `dev` dan juga mengizinkan pengguna untuk memberi tanda klaster dengan tanda yang sama. Kebijakan contoh akhir menunjukkan cara menolak keistimewaan untuk memberi tanda pada klaster EMR dengan apa saja tetapi harus dengan tanda yang sama.

Di kebijakan contoh berikut, syarat operator `StringEquals` mencoba untuk mencocokkan `dev` dengan nilai untuk tanda `department`. Jika tanda `department` belum ditambahkan ke klaster, atau tidak mengandung nilai `dev`, kebijakan tersebut tidak berlaku, dan tindakan tersebut tidak diizinkan oleh kebijakan ini. Jika tidak ada pernyataan kebijakan lain mengizinkan tindakan, pengguna hanya dapat bekerja dengan klaster yang memiliki tanda ini dengan nilai ini.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Stmt12345678901234",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:DescribeCluster",
        "elasticmapreduce:ListSteps",
        "elasticmapreduce:TerminateJobFlows",
        "elasticmapreduce:SetTerminationProtection",
        "elasticmapreduce:ListInstances",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ListBootstrapActions",
        "elasticmapreduce:DescribeStep"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/department": "dev"
        }
      }
    }
  ]
}
```

------

Anda juga dapat menentukan beberapa nilai tanda menggunakan operator syarat. Misalnya, untuk mengizinkan semua tindakan pada grup di mana tanda `department` berisi nilai `dev` atau `test`, Anda bisa mengganti blok syarat di contoh sebelumnya dengan berikut ini. 

```
            "Condition": {
              "StringEquals": {
                "elasticmapreduce:ResourceTag/department":["dev", "test"]
              }
            }
```

### Memerlukan penandaan klaster ketika sebuah klaster dibuat
<a name="emr-cluster-access-example-require-tagging"></a>

Seperti pada contoh sebelumnya, contoh kebijakan berikut mencari tag pencocokan yang sama: nilai `dev` untuk `department` tag. Namun dalam contoh ini, kunci `RequestTag` kondisi menetapkan bahwa kebijakan berlaku selama pembuatan tag. Jadi, Anda harus membuat cluster dengan tag yang cocok dengan nilai yang ditentukan. 

Untuk membuat cluster dengan tag, Anda juga harus memiliki izin untuk `elasticmapredue:AddTags` tindakan tersebut. Untuk pernyataan ini, kunci `elasticmapreduce:ResourceTag` kondisi memastikan bahwa IAM hanya memberikan akses ke sumber daya tag dengan nilai `dev` pada `department` tag. `Resource`Elemen ini digunakan untuk membatasi izin ini ke sumber daya cluster.

Untuk `PassRole` sumber daya, Anda harus memberikan ID AWS akun atau alias, nama peran layanan dalam `PassRoleForEMR` pernyataan, dan nama profil instance dalam `PassRoleForEC2` pernyataan. Untuk informasi selengkapnya tentang format IAM ARN, [lihat ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) IAM di Panduan Pengguna IAM*.* 

Untuk informasi selengkapnya tentang pencocokan nilai tag-key, lihat [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag)di Panduan Pengguna *IAM*.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunJobFlowExplicitlyWithTag",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:RunJobFlow"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/department": "dev"
        }
      }
    },
    {
      "Sid": "AddTagsForDevClusters",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:AddTags"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:*:*:cluster/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/department": "dev"
        }
      }
    },
    {
      "Sid": "PassRoleForEMR",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/Role-Name-With-Path"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "elasticmapreduce.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "PassRoleForEC2",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/Role-Name-With-Path"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "ec2.amazonaws.com*"
        }
      }
    }
  ]
}
```

------

### Izinkan tindakan pada klaster dengan tanda tertentu, terlepas dari nilai tanda
<a name="emr-cluster-access-example-tag"></a>

Anda juga dapat mengizinkan tindakan hanya pada klaster yang memiliki tanda tertentu, terlepas dari nilai tanda. Untuk melakukannya, Anda dapat menggunakan operator `Null`. Untuk informasi selengkapnya, lihat [Operator syarat untuk memeriksa keberadaan kunci syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_Null) di *Panduan Pengguna IAM*. Misalnya, untuk mengizinkan tindakan hanya pada klaster EMR yang memiliki `department` tanda, terlepas dari nilai yang dikandungnya, Anda bisa mengganti blok syarat di contoh sebelumnya dengan yang berikut. Operator `Null` mencari kehadiran tanda `department` pada klaster EMR. Jika tanda ada, pernyataan `Null` mengevaluasi ke SALAH, cocok dengan syarat yang ditentukan di pernyataan kebijakan ini, dan tindakan yang tepat diizinkan. 

```
1. "Condition": {
2.   "Null": {
3.     "elasticmapreduce:ResourceTag/department":"false"
4.   }
5. }
```

Pernyataan kebijakan berikut mengizinkan pengguna untuk membuat klaster EMR hanya jika klaster akan memiliki tanda `department`, yang dapat berisi nilai apapun. Untuk `PassRole` sumber daya, Anda perlu memberikan ID AWS akun atau alias, dan nama peran layanan. Untuk informasi selengkapnya tentang format IAM ARN, [lihat ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) IAM di Panduan Pengguna IAM*.*

Untuk informasi selengkapnya yang menentukan operator kondisi null (“false”), lihat [Operator kondisi untuk memeriksa keberadaan kunci kondisi di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) Pengguna *IAM*.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateClusterTagNullCondition",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:RunJobFlow"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "Null": {
          "aws:RequestTag/department": "false"
        }
      }
    },
    {
      "Sid": "AddTagsNullCondition",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:AddTags"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:*:*:cluster/*"
      ],
      "Condition": {
        "Null": {
          "elasticmapreduce:ResourceTag/department": "false"
        }
      }
    },
    {
      "Sid": "PassRoleForElasticMapReduce",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/Role-Name-With-Path"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "elasticmapreduce.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "PassRoleForEC2",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/Role-Name-With-Path"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "ec2.amazonaws.com*"
        }
      }
    }
  ]
}
```

------

## Contoh pernyataan kebijakan berbasis identitas untuk EMR Notebooks
<a name="emr-managed-notebooks-tags-examples"></a>

Contoh pernyataan kebijakan IAM di bagian ini menunjukkan skenario umum untuk menggunakan kunci untuk membatasi tindakan yang diizinkan menggunakan EMR Notebooks. Selama tidak ada kebijakan lain yang terkait dengan (pengguna) utama mengizinkan tindakan, kunci konteks syarat membatasi tindakan yang diizinkan seperti yang ditunjukkan.

**Example — Izinkan akses hanya ke EMR Notebooks yang dibuat pengguna berdasarkan penandaan**  
Contoh pernyataan kebijakan berikut, ketika dilampirkan ke peran atau pengguna, memungkinkan pengguna untuk bekerja hanya dengan buku catatan yang telah mereka buat. Pernyataan kebijakan ini menggunakan tanda default yang diterapkan ketika notebook dibuat.  
Dalam contoh, operator `StringEquals` kondisi mencoba mencocokkan variabel yang mewakili pengguna saat ini ID pengguna (`{aws:userId}`) dengan nilai tag`creatorUserID`. Jika tanda `creatorUserID` belum ditambahkan ke notebook, atau tidak berisi nilai ID pengguna saat ini, kebijakan tidak berlaku, dan tindakan tersebut tidak diizinkan oleh kebijakan ini. Jika tidak ada pernyataan kebijakan lain mengizinkan tindakan, pengguna hanya dapat bekerja dengan notebook yang memiliki tanda ini dengan nilai ini.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:DescribeEditor",
        "elasticmapreduce:StartEditor",
        "elasticmapreduce:StopEditor",
        "elasticmapreduce:DeleteEditor",
        "elasticmapreduce:OpenEditorInConsole"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}"
        }
      },
      "Sid": "AllowELASTICMAPREDUCEDescribeeditor"
    }
  ]
}
```

**Example –Memerlukan penandaan notebook saat notebook dibuat**  
di contoh ini, kunci konteks `RequestTag` digunakan. Tindakan `CreateEditor` diperbolehkan hanya jika pengguna tidak mengubah atau menghapus tanda `creatorUserID` yang ditambahkan secara default. Variabel \$1\$1aws:userId\$1, menentukan ID Pengguna dari pengguna aktif saat ini, yang merupakan nilai default dari tanda.  
Pernyataan kebijakan dapat digunakan untuk membantu memastikan bahwa pengguna tidak menghapus tanda `createUserId` atau mengubah nilainya.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:CreateEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:RequestTag/creatorUserId": "${aws:userid}"
        }
      },
      "Sid": "AllowELASTICMAPREDUCECreateeditor"
    }
  ]
}
```
Contoh ini mengharuskan pengguna membuat klaster dengan tanda yang membuat string kunci `dept` dan nilai diatur ke salah satu langkah berikut: `datascience`, `analytics`, `operations`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:CreateEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:RequestTag/dept": [
            "datascience",
            "analytics",
            "operations"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCECreateeditor"
    }
  ]
}
```

**Example –Batasi pembuatan notebook ke klaster yang ditandai, dan memerlukan tanda notebook**  
Contoh ini mengizinkan pembuatan notebook hanya jika notebook dibuat dengan tanda yang memiliki string kunci `owner` yang diatur ke salah satu nilai yang ditentukan. Selain itu, notebook hanya bisa dibuat jika klaster memiliki tanda dengan string kunci `department` yang diatur ke salah satu nilai yang ditentukan.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:CreateEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:RequestTag/owner": [
            "owner1",
            "owner2",
            "owner3"
          ],
          "elasticmapreduce:ResourceTag/department": [
            "dep1",
            "dep3"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCECreateeditor"
    }
  ]
}
```

**Example –Batasi kemampuan mulai notebook berdasarkan tanda**  
Contoh ini membatasi kemampuan untuk memulai notebook hanya untuk notebook yang memiliki tanda dengan string kunci `owner` yang diatur ke salah satu nilai yang ditentukan. Karena elemen `Resource` digunakan hanya untuk menentukan `editor`, syarat tidak berlaku untuk klaster, dan tidak perlu ditandai.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:StartEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:editor/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/owner": [
            "owner1",
            "owner2"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEStarteditor"
    }
  ]
}
```
Contoh ini mirip dengan yang di atas. Namun, batas hanya berlaku untuk grup yang ditandai, bukan notebook.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:StartEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:cluster/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/department": [
            "dep1",
            "dep3"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEStarteditor"
    }
  ]
}
```
Contoh ini menggunakan seperangkat notebook dan tanda klaster yang berbeda. Hal ini mengizinkan notebook untuk dimulai hanya jika:  
+ Notebook ini memiliki tanda dengan string kunci `owner` yang diatur ke salah satu nilai yang ditentukan

  —dan—
+ Klaster memiliki tanda dengan string kunci `department` yang diatur ke salah satu nilai yang ditentukan  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:StartEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:editor/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/owner": [
            "user1",
            "user2"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEStarteditorByOwner"
    },
    {
      "Action": [
        "elasticmapreduce:StartEditor"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:cluster/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/department": [
            "datascience",
            "analytics"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEStarteditorByDepartment"
    }
  ]
}
```

**Example –Batasi kemampuan untuk membuka editor notebook berdasarkan tanda**  
Contoh ini mengizinkan editor notebook dibuka hanya jika:  
+ Notebook ini memiliki tanda dengan string kunci `owner` yang diatur ke salah satu nilai yang ditentukan.

  —dan—
+ Klaster memiliki tanda dengan string kunci `department` yang diatur ke salah satu nilai yang ditentukan.  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:OpenEditorInConsole"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:editor/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/owner": [
            "user1",
            "user2"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEOpeneditorconsoleByOwner"
    },
    {
      "Action": [
        "elasticmapreduce:OpenEditorInConsole"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:cluster/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/department": [
            "datascience",
            "analytics"
          ]
        }
      },
      "Sid": "AllowELASTICMAPREDUCEOpeneditorconsoleByDepartment"
    }
  ]
}
```