

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

# 将 EMR Notebook 与存储库集成的先决条件和注意事项
<a name="emr-managed-notebooks-git-considerations"></a>

在计划将 Git-based 存储库与 EMR Notebooks 集成时，请考虑以下有关提交、权限和托管的最佳实践。

**注意**  
EMR Notebooks 在控制台中作为 Amazon EMR Studio Workspaces 提供。通过控制台中的**创建 Workspace** 按钮，可以创建新的 Notebooks。要访问或创建 Workspaces，EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息，请参阅 [Amazon EMR Notebooks 是控制台中的 Amazon EMR Studio Workspaces](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) 和 [Amazon EMR 控制台](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html)。

## AWS CodeCommit
<a name="code-commit-considerations"></a>

如果您使用 CodeCommit 存储库，则必须使用 Git 凭据和 HTTPS CodeCommit。不支持 SSH 密钥和带有 AWS CLI 凭据助手的 HTTPS。 CodeCommit 不支持个人访问令牌 (PAT)。有关更多信息，请参阅 [IAM 用户指南中的 IAM 与 CodeCommit Git 证书、SSH 密钥和 AWS 访问密钥一起使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html)，以及*用户指南*中的[使用 Git 凭证的 HTTPS *AWS CodeCommit 用户*设置](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)。

## 访问和权限注意事项
<a name="access-considerations"></a>

在将存储库与 Notebook 关联之前，请确保集群、EMR Notebooks 的 IAM 角色和安全组具有正确的设置和权限。您也可以按照中的说明配置在私有网络中托管的 Git-based 存储库[为 EMR Notebooks 配置私有托管的 Git 存储库](#emr-managed-notebooks-private-git-repo)。
+ **集群互联网访问**：启动的网络接口只有一个私有 IP 地址。这意味着 Notebook 连接到的集群必须位于具有网络地址转换 (NAT) 网关的私有子网中，或者必须能够通过虚拟私有网关访问 Internet。有关更多信息，请参阅 [Amazon VPC 选项](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html)。

  Notebook 的安全组必须包含出站规则，以便允许 Notebook 将流量从集群路由到 Internet。建议您创建自己的安全组。有关更多信息，请参阅[为 EMR Notebooks 指定 EC2 安全组](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)。
**重要**  
如果网络接口启动到公有子网中，它将无法通过互联网网关（IGW）与互联网通信。
+ **的权限 AWS Secrets Manager** — 如果您使用 Secrets Manager 存储用于访问仓库的机密，则[EMR Notebooks 的服务角色](emr-managed-notebooks-service-role.md)必须附加允许`secretsmanager:GetSecretValue`执行该操作的权限策略。

## 为 EMR Notebooks 配置私有托管的 Git 存储库
<a name="emr-managed-notebooks-private-git-repo"></a>

使用以下说明为 EMR Notebooks 配置私有托管的存储库。您必须提供一个配置文件，其中包含有关您的 DNS 和 Git 服务器的信息。Amazon EMR 使用此信息配置将流量路由到您的私有托管存储库的 EMR Notebooks。

**先决条件**

在为 EMR Notebooks 配置私有托管的 Git 存储库之前，您必须具备以下条件：
+ 保存 EMR 笔记本文件 Amazon S3 Control 的位置。

**为 EMR Notebooks 配置一个或多个私有托管的 Git 存储库**

1. 使用提供的模板创建配置文件。为要在配置中指定的每个 Git 服务器包括以下值：
   + **`DnsServerIpV4`**：您的 DNS 服务器的 IPv4 地址。如果您同时提供 `DnsServerIpV4` 和 `GitServerIpV4List` 的值，则 `DnsServerIpV4` 的值优先，并将用于解析您的 `GitServerDnsName`。
**注意**  
要使用私有托管的 Git 存储库，您的 DNS 服务器必须允许来自 EMR Notebooks 的入站访问。我们强烈建议您保护您的 DNS 服务器，防止其它未经授权的访问。
   + **`GitServerDnsName`**：您的 Git 服务器的 DNS 名称。例如 `"git.example.com"`。
   + **`GitServerIpV4List`**：属于您的 Git 服务器的 IPv4 地址列表。

   ```
   [
       {
           "Type": "PrivatelyHostedGitConfig",
           "Value": [
               {
                   "DnsServerIpV4": "{{<10.24.34.xxx>}}",
                   "GitServerDnsName": "{{<enterprise.git.com>}}",
                   "GitServerIpV4List": [
                       "{{<xxx.xxx.xxx.xxx>}}",
                       "{{<xxx.xxx.xxx.xxx>}}"
                   ]
               },
               {
                   "DnsServerIpV4": "{{<10.24.34.xxx>}}",
                   "GitServerDnsName": "{{<git.example.com>}}",
                   "GitServerIpV4List": [
                       "{{<xxx.xxx.xxx.xxx>}}",
                       "{{<xxx.xxx.xxx.xxx>}}"
                   ]
               }
           ]
       }
   ]
   ```

1. 将配置文件另存为 `configuration.json`。

1. 将配置文件上载到名为 `life-cycle-configuration` 的文件夹中的指定 Amazon S3 存储位置。例如，如果您的默认 S3 位置是 `s3://amzn-s3-demo-bucket/notebooks`，则您的配置文件应位于 `s3://amzn-s3-demo-bucket/notebooks/life-cycle-configuration/configuration.json`。
**重要**  
我们强烈建议您将 `life-cycle-configuration` 文件夹的访问权限限制为仅您的 EMR Notebooks 管理员以及 EMR Notebooks 的服务角色。您还应该确保 `configuration.json` 免受未经授权的访问。有关说明，请参阅[使用用户策略控制对存储桶的访问](https://docs.aws.amazon.com/AmazonS3/latest/userguide/walkthrough1.html)或 [Amazon S3 的安全最佳实践](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)。

   有关上载说明，请参阅《Amazon Simple Storage Service 用户指南》**中的[创建文件夹](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html#create-folder)和[上载对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。