

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# EMR Notebooks 的服务角色
<a name="emr-managed-notebooks-service-role"></a>

每个 EMR 笔记本都需要访问其他 Amazon 资源和执行操作的权限。附加到此服务角色的 IAM 策略为笔记本提供了与其他 Amazon 服务互操作的权限。使用创建笔记本时 Amazon Web Services 管理控制台，需要指定*Amazon 服务角色*。您可以使用默认角色 `EMR_Notebooks_DefaultRole`，也可以指定您创建的角色。如果之前尚未创建 Notebook，则可以选择创建默认角色。
+ 默认角色名为 `EMR_Notebooks_DefaultRole`。
+ 默认情况下，附加到 `EMR_Notebooks_DefaultRole` 的托管式策略是 `AmazonElasticMapReduceEditorsRole` 和 `S3FullAccessPolicy`。

您的服务角色应该使用下面的信任策略。

**重要**  
下面的信任策略包括 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 和 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 全局条件密钥，该密钥将限制您为 Amazon EMR 授予的、针对您账户中特定资源的权限。使用这些策略可以防止[混淆代理问题](https://docs.amazonaws.cn/IAM/latest/UserGuide/confused-deputy.html)。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMRServiceRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
        }
      },
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

版本 1 的内容 `AmazonElasticMapReduceEditorsRole` 如下所示。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateSecurityGroup",
        "ec2:DescribeSecurityGroups",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:DescribeTags",
        "ec2:DescribeInstances",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "elasticmapreduce:ListInstances",
        "elasticmapreduce:DescribeCluster",
        "elasticmapreduce:ListSteps"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEC2Authorizesecuritygroupegress"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "aws:elasticmapreduce:editor-id",
            "aws:elasticmapreduce:job-flow-id"
          ]
        }
      },
      "Sid": "AllowEC2Createtags"
    }
  ]
}
```

------

下面是 `S3FullAccessPolicy` 的内容。`S3FullAccessPolicy` 允许 EMR Notebooks 的服务角色对 Amazon Web Services 账户中的对象执行所有 Amazon S3 操作。当您为 EMR Notebooks 创建自定义服务角色时，必须向服务角色授予 Amazon S3 权限。

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

****  

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

------

您可以将服务角色的读写权限范围缩小到要保存 Notebook 文件的 Amazon S3 位置。使用以下最小 Amazon S3 权限集。

```
"s3:PutObject",
"s3:GetObject",
"s3:GetEncryptionConfiguration",
"s3:ListBucket",
"s3:DeleteObject"
```

如果您的 Amazon S3 存储桶已加密，您必须为 Amazon Key Management Service包含以下权限。

```
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:DescribeKey"
```

当您将 Git 存储库链接到 Notebook 并需要为存储库创建密钥时，您必须在附加到 Amazon EMR Notebooks 的服务角色的 IAM policy 中添加 `secretsmanager:GetSecretValue` 权限。下面演示了一个示例策略：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## EMR Notebooks 服务角色权限
<a name="emr-managed-notebooks-service-role-permissions"></a>

此表列出了 EMR Notebooks 使用服务角色执行的操作，以及每个操作所需的权限。


****  

| 处理建议 | Permissions | 
| --- | --- | 
| 在 Notebook 和 Amazon EMR 集群之间建立安全的网络通道，并执行必要的清理操作。 |  <pre>"ec2:CreateNetworkInterface", <br />"ec2:CreateNetworkInterfacePermission", <br />"ec2:DeleteNetworkInterface", <br />"ec2:DeleteNetworkInterfacePermission", <br />"ec2:DescribeNetworkInterfaces", <br />"ec2:ModifyNetworkInterfaceAttribute", <br />"ec2:AuthorizeSecurityGroupEgress", <br />"ec2:AuthorizeSecurityGroupIngress", <br />"ec2:CreateSecurityGroup",<br />"ec2:DescribeSecurityGroups", <br />"ec2:RevokeSecurityGroupEgress",<br />"ec2:DescribeTags",<br />"ec2:DescribeInstances",<br />"ec2:DescribeSubnets",<br />"ec2:DescribeVpcs",<br />"elasticmapreduce:ListInstances", <br />"elasticmapreduce:DescribeCluster", <br />"elasticmapreduce:ListSteps"</pre>  | 
| 使用存储在 Amazon Secrets Manager 中的 Git 凭证将 Git 存储库链接到 Notebook。 |  <pre>"secretsmanager:GetSecretValue"</pre>  | 
| 将 Amazon 标签应用于 EMR Notebooks 在设置安全网络通道时创建的网络接口和默认安全组。有关更多信息，请参阅[标记 Amazon 资源](https://docs.amazonaws.cn/general/latest/gr/aws_tagging.html)。 |  <pre>"ec2:CreateTags"</pre>  | 
| 访问 Notebook 文件和元数据或将它们上载到 Amazon S3。 |  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:GetEncryptionConfiguration",<br />"s3:ListBucket",<br />"s3:DeleteObject" </pre> 仅当您使用加密的 Amazon S3 存储桶时才需要以下权限。 <pre>"kms:Decrypt",<br />"kms:GenerateDataKey",<br />"kms:ReEncryptFrom",<br />"kms:ReEncryptTo",<br />"kms:DescribeKey"</pre>  | 

## EMR Notebooks 对托管策略 Amazon 的更新
<a name="notebooks-slr-updates"></a>

查看自 2021 年 3 月 1 日起 EMR Notebooks Amazon 托管政策更新的详细信息。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
| AmazonElasticMapReduceEditorsRole - Added permissions | EMR Notebooks 已将 `ec2:describeVPCs` 和 `elastmicmapreduce:ListSteps` 权限添加至 `AmazonElasticMapReduceEditorsRole`。  | 2023 年 2 月 8 日  | 
| EMR Notebooks 开启了跟踪修订  |  EMR Notebooks 开始跟踪 Amazon 其托管策略的更改。  | 2023 年 2 月 8 日  | 