

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# EMR Serverless 的使用者存取政策範例
<a name="security-iam-user-access-policies"></a>

您可以根據希望每個使用者在與 EMR Serverless 應用程式互動時執行的動作，為使用者設定精細的政策。下列政策範例可能有助於為您的使用者設定適當的許可。本節僅著重於 EMR Serverless 政策。如需 EMR Studio 使用者政策的範例，請參閱[設定 EMR Studio 使用者許可](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-advanced-permissions-policy)。如需如何將政策連接至 IAM 使用者 （原則） 的資訊，請參閱《[IAM 使用者指南》中的管理 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html)。

## 進階使用者政策
<a name="security-iam-user-access-policies-full-access"></a>

若要授予 EMR Serverless 所有必要的動作，請建立`AmazonEMRServerlessFullAccess`政策並將其連接至所需的 IAM 使用者、角色或群組。

以下是範例政策，允許進階使用者建立和修改 EMR Serverless 應用程式，以及執行其他動作，例如提交和偵錯任務。它會顯示 EMR Serverless 對其他服務所需的所有動作。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessActions",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:CreateApplication",
        "emr-serverless:UpdateApplication",
        "emr-serverless:DeleteApplication",
        "emr-serverless:ListApplications",
        "emr-serverless:GetApplication",
        "emr-serverless:StartApplication",
        "emr-serverless:StopApplication",
        "emr-serverless:StartJobRun",
        "emr-serverless:CancelJobRun",
        "emr-serverless:ListJobRuns",
        "emr-serverless:GetJobRun"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

當您啟用 VPC 的網路連線時，EMR Serverless 應用程式會建立 Amazon EC2 彈性網路介面 (ENIs) 來與 VPC 資源通訊。下列政策可確保僅在 EMR Serverless 應用程式的內容中建立新的 EC2 ENIs。

**注意**  
我們強烈建議設定此政策，以確保使用者無法建立 EC2 ENIs除非在啟動 EMR Serverless 應用程式的情況下。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowEC2ENICreationWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com"
        }
      }
    }
  ]
}
```

------

如果您想要限制 EMR Serverless 存取特定子網路，您可以使用標籤條件來標記每個子網路。此 IAM 政策可確保 EMR Serverless 應用程式只能在允許的子網路內建立 EC2 ENIs。

```
{
    "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface"
    ],
    "Resource": [
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*"
    ],
    "Condition": {
        "StringEquals": {
            "aws:ResourceTag/KEY": "VALUE"
        }
    }
}
```

**重要**  
如果您是建立第一個應用程式的管理員或進階使用者，您必須設定許可政策，以允許您建立 EMR Serverless 服務連結角色。若要進一步了解，請參閱 [使用 EMR Serverless 的服務連結角色](using-service-linked-roles.md)。

下列 IAM 政策可讓您為帳戶建立 EMR Serverless 服務連結角色。

```
{
   "Sid":"AllowEMRServerlessServiceLinkedRoleCreation",
   "Effect":"Allow",
   "Action":"iam:CreateServiceLinkedRole",
   "Resource":"arn:aws:iam::account-id:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless"
}
```

## 資料工程師政策
<a name="security-iam-user-access-policies-read-only-access"></a>

以下是允許使用者在 EMR Serverless 應用程式上唯讀許可的範例政策，以及提交和偵錯任務的功能。請切記，因為此政策並未明確拒絕動作，不同的政策陳述式仍有可能用於授予指定動作存取權。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessActions",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:ListApplications",
        "emr-serverless:GetApplication",
        "emr-serverless:StartApplication",
        "emr-serverless:StartJobRun",
        "emr-serverless:CancelJobRun",
        "emr-serverless:ListJobRuns",
        "emr-serverless:GetJobRun"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## 使用存取控制的標籤
<a name="security-iam-user-access-policies-using-tags"></a>

您可以使用標籤條件進行精細存取控制。例如，您可以限制一個團隊的使用者，讓他們只能將任務提交至標示其團隊名稱的 EMR Serverless 應用程式。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessActions",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:ListApplications",
        "emr-serverless:GetApplication",
        "emr-serverless:StartApplication",
        "emr-serverless:StartJobRun",
        "emr-serverless:CancelJobRun",
        "emr-serverless:ListJobRuns",
        "emr-serverless:GetJobRun"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------