使用 Amazon EMR 封鎖公開存取 - Amazon EMR

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

使用 Amazon EMR 封鎖公開存取

如果叢集的安全組態允許來自連接埠上公有 IP 地址的傳入流量,則 Amazon EMR 封鎖公開存取 (BPA) 會阻止您在公有子網路中啟動叢集。

重要

預設為啟用封鎖公開存取。為了增強帳戶保護,建議您保持啟用狀態。

了解封鎖公開存取

您可以使用封鎖公開存取帳戶層級組態來集中管理 Amazon EMR 叢集的公有網路存取。

當您的使用者 AWS 帳戶 啟動叢集時,Amazon EMR 會檢查安全群組中的連接埠規則,並將它們與您的入站流量規則進行比較。如果安全群組具有開啟公有 IP 地址 IPv4 0.0.0.0/0 或 IPv6 ::/0 連接埠的傳入規則,且這些連接埠未指定為您帳戶的例外狀況,則 Amazon EMR 不會允許使用者建立叢集。

如果使用者修改公有子網路中正在執行的叢集的安全群組規則,讓其具有違反您帳戶的 BPA 組態的公開存取規則,則 Amazon EMR 將撤銷新規則 (如果它有執行此操作的許可)。如果 Amazon EMR 沒有撤銷此規則的許可,則其會在 AWS Health 儀表板中建立描述違規的事件。若要將撤銷規則許可授予 Amazon EMR,請參閱 設定 Amazon EMR 以撤銷安全群組規則

依預設,為您的 AWS 帳戶的每個 AWS 區域 中的所有叢集啟用封鎖公開存取。BPA 適用於叢集的整個生命週期,但並不適用於您在私有子網路中建立的叢集。您可以設定 BPA 規則的例外狀況;依預設,連接埠 22 為例外狀況。如需有關設定例外狀況的詳細資訊,請參閱 設定封鎖公開存取

設定封鎖公開存取

您可以隨時更新帳戶中的安全群組和封鎖公開存取組態。

您可以使用 AWS Management Console、() 和 Amazon EMR API 開啟和關閉封鎖公用存取 AWS Command Line Interface (BPA AWS CLI) 設定。設定會依據各個區域套用到您的帳戶。若要維護叢集安全,建議您使用 BPA。

New console
注意

我們已重新設計 Amazon EMR 主控台,可讓您更輕鬆地使用。請參閱 Amazon EMR 控制台 以了解舊的和新的主控台體驗之間的差異。

使用新主控台設定封鎖公開存取
  1. 登入 AWS Management Console,然後開啟 Amazon EMR 主控台,網址為 https://console.aws.amazon.com/emr

  2. 在頂部導覽列上,選取您要設定的區域 (如果尚未選取)。

  3. 在左側導覽窗格中的 EC2 上的 EMR 下,選擇封鎖公開存取

  4. Block public access settings (封鎖公開存取設定) 下,完成以下步驟。

    若要... 執行此作業...

    開啟或關閉封鎖公開存取

    選擇編輯,視需要選擇開啟關閉,然後選擇儲存

    編輯例外清單中的連接埠

    1. 選擇編輯並尋找連接埠範圍例外狀況區段。

    2. 若要將連接埠新增至例外清單,請選擇 Add a port range (新增連接埠範圍),然後輸入新的連接埠或連接埠範圍。針對每個新增的連接埠或連接埠範圍重複此步驟。

    3. 若要移除連接埠或連接埠範圍,請在連接埠範圍清單中選擇項目旁邊的移除

    4. 選擇儲存

Old console
使用舊主控台檢視設定封鎖公開存取
  1. 打開 Amazon EMR 控制台,網址為 https://console.aws.amazon.com/emr

  2. 在頂部導覽列上,確認已選取您要設定的區域

  3. 選擇 封鎖公開存取

  4. Block public access settings (封鎖公開存取設定) 下,完成以下步驟。

    若要... 執行此作業...

    開啟或關閉封鎖公開存取

    選擇 Change (變更),選擇 On (開啟)Off (關閉),然後選擇核取記號來確認。

    編輯例外清單中的連接埠

    1. Exceptions (例外狀況) 下,選擇 Edit (編輯)

    2. 若要將連接埠新增至例外清單,請選擇 Add a port range (新增連接埠範圍),然後輸入新的連接埠或連接埠範圍。針對每個新增的連接埠或連接埠範圍重複此步驟。

    3. 若要移除連接埠或連接埠範圍,請在連接埠範圍清單中選擇項目旁邊的 x

    4. 選擇 Save Changes (儲存變更)。

AWS CLI
設定封鎖公用存取 AWS CLI
  • 使用 aws emr put-block-public-access-configuration 指令來設定封鎖公開存取,如下列範例所示。

    若要... 執行此作業...

    開啟封鎖公開存取

    如下列範例所示,設定 BlockPublicSecurityGroupRulestrue。若要讓叢集啟動,任何與叢集相關聯的安全群組都可以有允許公開存取的傳入規則。

    aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=true

    關閉封鎖公開存取

    如下列範例所示,設定 BlockPublicSecurityGroupRulesfalse。與叢集相關聯的安全群組可以擁有允許任何連接埠上公有存取的傳入規則。我們不建議使用此組態。

    aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=false

    開啟封鎖公開存取,並將連接埠指定為例外狀況

    下列範例開啟封鎖公開存取,並將連接埠 22 和連接埠 100-101 指定為例外狀況。這可以讓叢集建立相關聯的安全群組具有允許連接埠 22、連接埠 100 或連接埠 101 公開存取的傳入規則。

    aws emr put-block-public-access-configuration --block-public-access-configuration '{ "BlockPublicSecurityGroupRules": true, "PermittedPublicSecurityGroupRuleRanges": [ { "MinRange": 22, "MaxRange": 22 }, { "MinRange": 100, "MaxRange": 101 } ] }'

設定 Amazon EMR 以撤銷安全群組規則

Amazon EMR 需要撤銷安全群組規則並遵守您的封鎖公開存取組態的許可。您可以使用下列其中一種方法,來提供 Amazon EMR 所需的許可:

  • (建議)AmazonEMRServicePolicy_v2 受管政策附接至服務角色。如需詳細資訊,請參閱 Amazon EMR 的服務角色 (EMR 角色)

  • 建立新的內嵌政策,以允許對安全群組執行 ec2:RevokeSecurityGroupIngress 動作。如需有關如何修改角色許可政策的詳細資訊,請參閱《IAM 使用者指南》中的使用 IAM 主控台AWS APIAWS CLI 修改角色許可政策

解決封鎖公開存取違規問題

如果發生封鎖公開存取違規,您可以透過下列其中一個動作來緩解此問題:

  • 如果您想要存取叢集上的 Web 介面,請使用 檢視 Amazon EMR 叢集上託管的 Web 介面 中所述的其中一個選項透過 SSH (連接埠 22) 存取介面。

  • 若要允許從特定 IP 地址而非公有 IP 地址傳送至叢集的流量,請新增安全群組規則。如需詳細資訊,請參閱《Amazon EC2 入門指南》中的將規則新增至安全群組

  • (不建議) 您可以設定 Amazon EMR BPA 例外狀況,以包含所需的連接埠或連接埠範圍。在您指定 BPA 例外狀況時,會對未受保護的連接埠造成風險。如果您計劃指定例外狀況,則應在不再需要例外狀況時立即予以移除。如需詳細資訊,請參閱 設定封鎖公開存取

識別與安全群組規則關聯的叢集

您可能需要識別與指定安全群組規則關聯的所有叢集,或尋找指定叢集的安全群組規則。

  • 如果您知道安全群組,且尋找此安全群組的網路介面,則可以識別關聯的叢集。如需詳細資訊,請參閱 AWS re:Post上的如何尋找與 Amazon EC2 安全群組關聯的資源?。附接至這些網路介面的 Amazon EC2 執行個體將使用其所屬叢集的 ID 進行標記。

  • 如果您要尋找已知叢集的安全群組,請遵循 檢視叢集狀態和詳細資訊 中的步驟進行。您可以在主控台的網路和安全面板中,或 AWS CLI的 Ec2InstanceAttributes 欄位中尋找叢集的安全群組。