

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

# 建立 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 儲存庫與工作區建立關聯，請設定下列存取和許可要求。也可以依照 [針對 EMR Studio 設定私有託管的 Git 儲存庫](#emr-studio-private-git-repo) 中的指示，設定在私有網路中託管的 Git 儲存庫。

**叢集網際網路存取**  
在 Amazon EC2 上執行的 Amazon EMR 叢集和附接至 Studio 工作區的 Amazon EMR on EKS 叢集都必須位於使用網路位址轉譯 (NAT) 閘道的私有子網路中，或者必須能夠透過虛擬私有閘道存取網際網路。如需詳細資訊，請參閱[啟動叢集時的 Amazon VPC 選項](emr-clusters-in-a-vpc.md)。  
您搭配 EMR Studio 使用的安全群組也必須包含傳出規則，以允許工作區將流量從附接的 EMR 叢集路由到網際網路。如需詳細資訊，請參閱[定義安全群組，以控制 EMR Studio 網路流量](emr-studio-security-groups.md)。  
如果網路介面在公有子網路中，將無法透過網際網路閘道 (IGW) 與網際網路進行通訊。

**的許可 AWS Secrets Manager**  
若要讓 EMR Studio 使用者透過 AWS Secrets Manager中儲存的密碼來存取 Git 儲存庫，請將許可政策新增至允許 `secretsmanager:GetSecretValue` 操作的 [EMR Studio 服務角色](emr-studio-service-role.md)。

如需有關如何將 Git 儲存庫連結至工作區的相關資訊，請參閱 [將基於 Git 的儲存庫連結到 EMR Studio 工作區](emr-studio-git-repo.md)。

## 針對 EMR Studio 設定私有託管的 Git 儲存庫
<a name="emr-studio-private-git-repo"></a>

使用下列指示來設定 Amazon EMR Studio 的私有託管儲存庫。提供包含 DNS 和 Git 伺服器相關資訊的組態檔案。EMR Studio 會使用此資訊來設定工作區，它可將流量路由到您自我管理的儲存庫。

**注意**  
如果您設定 `DnsServerIpV4`，EMR Studio 會使用 DNS 伺服器來解析您的 `GitServerDnsName`和 AWS 端點，但強烈建議避免使用 解析 AWS 端點`DnsServerIpV4`，因為這可能會中斷基本服務功能。

**先決條件**

在為 EMR Studio 設定私有託管的 Git 儲存庫之前，您需要一個 Amazon S3 儲存位置，EMR Studio 可在其中備份 Studio 中的工作區和筆記本檔案。使用您在建立 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. 將組態檔案上傳至名為 的資料夾中的預設 Amazon S3 儲存位置`life-cycle-configuration`。例如，如果預設的 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)。若要將組態套用到現有工作區，請在將組態檔案上傳到 Amazon S3 後關閉並重新啟動工作區。