

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

# 为基于 Git 的存储库建立访问和权限
<a name="emr-studio-enable-git"></a>

EMR Studio 支持以下基于 Git 的服务：
+ [AWS CodeCommit](https://aws.amazon.com/codecommit)
+ [GitHub](https://github.com)
+ [Bitbucket](https://bitbucket.org/)
+ [GitLab](https://about.gitlab.com/)

要让 EMR Studio 用户将 Git 存储库与 Workspace 相关联，请设置以下访问和权限要求。您还可以按照[为 EMR Studio 配置私有托管的 Git 存储库](#emr-studio-private-git-repo)中的说明配置在专用网络中托管的基于 Git 的存储库。

**集群互联网访问**  
在 Amazon EC2 上运行的 Amazon EMR 集群和附加到 Studio Workspaces 的 Amazon EMR on EKS 集群都必须位于使用网络地址转换（NAT）网关的私有子网中，或者它们必须能够通过虚拟私有网关访问互联网。有关更多信息，请参阅 [启动集群时的 Amazon VPC 选项](emr-clusters-in-a-vpc.md)。  
您与 EMR Studio 一起使用的安全组还必须包含一个出站规则，该规则允许 Workspaces 将流量从附加的 EMR 集群路由到互联网。有关更多信息，请参阅 [定义安全组以控制 EMR Studio 网络流量](emr-studio-security-groups.md)。  
如果网络接口在公有子网，它将无法通过互联网网关 (IGW) 与互联网通信。

**的权限 AWS Secrets Manager**  
要让 EMR Studio 用户使用存储在 AWS Secrets Manager中的密钥访问 Git 存储库，请向 [EMR Studio 的服务角色](emr-studio-service-role.md)添加允许 `secretsmanager:GetSecretValue` 运营的权限策略。

有关如何将基于 Git 的存储库链接到 Workspaces 的信息，请参阅[将基于 Git 的存储库链接到 EMR Studio Workspace](emr-studio-git-repo.md)。

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

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

**注意**  
如果您进行配置`DnsServerIpV4`，EMR Studio 会使用您的 DNS 服务器来解析您的`GitServerDnsName`和 AWS 终端节点，但强烈建议您避免使用您的服务器解析 AWS 终端节点，`DnsServerIpV4`因为这可能会中断基本的服务功能。

**先决条件**

在为 EMR Studio 配置私有托管的 Git 存储库之前，您需要一个 Amazon S3 存储位置，EMR Studio 可以在其中备份 Studio 中的 Workspace 和 Notebook 文件。使用您在创建 Studio 时指定的相同 S3 存储桶。

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

1. 使用以下模板创建配置文件。为要在配置中指定的每个 Git 服务器包括以下值：
   + **`DnsServerIpV4`**-您的 DNS 服务器 IPv4 的地址。如果您同时提供 `DnsServerIpV4` 和 `GitServerIpV4List` 的值，则 `DnsServerIpV4` 的值优先，而且 EMR Studio 使用 `DnsServerIpV4` 解析您的 `GitServerDnsName`。
**注意**  
要使用私有托管的 Git 存储库，您的 DNS 服务器必须允许来自 EMR Studio 的入站访问。我们敦促您保护您的 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/workspace`，则您的配置文件将位于 `s3://amzn-s3-demo-bucket/workspace/life-cycle-configuration/configuration.json`。
**重要**  
我们敦促您将 `life-cycle-configuration` 文件夹的访问权限限制为仅限 Studio 管理员和您的 EMR Studio 服务角色，并保护 `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)。要将您的配置应用到现有 Workspace，您应该在将配置文件上传到 Amazon S3 后关闭并重新启动 Workspace。