View a markdown version of this page

將 EMR 筆記本與儲存庫整合時的先決條件和考量事項 - Amazon EMR

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

將 EMR 筆記本與儲存庫整合時的先決條件和考量事項

規劃將 Git 型儲存庫與 EMR Notebooks 整合時,請考慮下列有關遞交、許可和託管的最佳實務。

注意

EMR Notebooks 可在 主控台中做為 EMR Studio Workspaces 使用。主控台中的建立工作區按鈕可讓您建立新的筆記本。若要存取或建立工作區,EMR Notebooks 使用者需要其他 IAM 角色許可。如需詳細資訊,請參閱 主控台中的 Amazon EMR Notebooks 是 Amazon EMR Studio WorkspacesAmazon EMR 主控台

AWS CodeCommit

如果您使用 CodeCommit 儲存庫,則必須將 Git 憑證和 HTTPS 與 CodeCommit 搭配使用。不支援使用AWS CLI登入資料協助程式的 SSH 金鑰和 HTTPS。CodeCommit 不支援個人存取字符 (PAT)。如需詳細資訊,請參閱《IAM 使用者指南》中的使用 IAM 搭配 CodeCommit:Git 憑證、SSH 金鑰和AWS存取金鑰,以及《 AWS CodeCommit使用者指南》中的使用 Git 憑證設定 HTTPS 使用者

存取權和許可考量事項

建立儲存庫與筆記本的關聯性之前,請先確認您的叢集、EMR Notebooks 的 IAM 角色以及安全群組具備正確的設定和許可。也可以依照 針對 EMR Notebooks 設定私有託管的 Git 儲存庫 中的指示,設定在私有網路中託管的 Git 儲存庫。

  • 叢集網際網路存取 – 啟動的網路介面只有一個私有 IP 地址。這表示筆記本連接的叢集必須位於具有網路位址轉譯 (NAT) 閘道的私有子網路中,或必須能夠透過虛擬私有閘道存取網際網路。如需詳細資訊,請參閱 Amazon VPC 選項

    筆記本的安全群組必須包含傳出規則,讓筆記本能夠將流量從叢集路由傳送到網際網路。建議您建立自己的安全群組。如需詳細資訊,請參閱為 EMR Notebook 指定 EC2 安全群組

    重要

    如果在公有子網路中啟動網路介面,將無法透過網際網路閘道 (IGW) 與網際網路進行通訊。

  • 的許可AWS Secrets Manager – 如果您使用 Secrets Manager 來存放您用來存取儲存庫的秘密,EMR Notebooks 的服務角色則 必須連接允許 secretsmanager:GetSecretValue動作的許可政策。

針對 EMR Notebooks 設定私有託管的 Git 儲存庫

使用下列指示來設定 EMR Notebooks 的私有託管儲存庫。必須提供包含 DNS 和 Git 伺服器相關資訊的組態檔案。Amazon EMR 使用此資訊來設定 EMR 筆記本,它們可將流量路由到私有託管儲存庫。

先決條件

在設定 EMR Notebooks 的私有託管的 Git 儲存庫之前,必須具備下列項目:

  • 儲存 EMR 筆記本檔案Amazon S3 Control的位置。

針對 EMR Notebooks 設定一個或多個私有託管的 Git 儲存庫
  1. 使用提供的範本建立組態檔案。針對您要在組態中指定的每個 Git 伺服器,包括下列值:

    • DnsServerIpV4 - DNS 伺服器的 IPv4 地址。如果同時提供 DnsServerIpV4GitServerIpV4List 的值,則 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>" ] } ] } ]
  2. 將組態檔案另存為 configuration.json

  3. 將組態檔案上傳到名為 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 免受未經授權的存取。如需指示,請參閱透過使用者政策來控制對儲存貯體的存取Amazon S3 的安全最佳實務

    如需上傳說明,請參閱《Amazon Simple Storage Service 使用者指南》中的建立資料夾上傳物件