

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

# 使用 Amazon EMR 封鎖公開存取
<a name="emr-block-public-access"></a>

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

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

## 了解封鎖公開存取
<a name="emr-block-public-access-about"></a>

您可以使用*封鎖公開存取*帳戶層級組態來集中管理 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 以撤銷安全群組規則](#revoke-block-public-access)。

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

## 設定封鎖公開存取
<a name="configure-block-public-access"></a>

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

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

------
#### [ Console ]

**使用主控台設定封鎖公開存取**

1. 登入 AWS 管理主控台，然後開啟位於 https：//[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) 的 Amazon EMR 主控台。

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

1. 在左側導覽窗格中的 **EC2 上的 EMR** 下，選擇**封鎖公開存取**。

1. 在 **Block public access settings (封鎖公開存取設定) ** 下，完成以下步驟。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/emr-block-public-access.html)

------
#### [ AWS CLI ]

**使用 設定封鎖公開存取 AWS CLI**
+ 使用 `aws emr put-block-public-access-configuration` 指令來設定封鎖公開存取，如下列範例所示。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/emr-block-public-access.html)

------

## 設定 Amazon EMR 以撤銷安全群組規則
<a name="revoke-block-public-access"></a>

Amazon EMR 需要撤銷安全群組規則並遵守您的封鎖公開存取組態的許可。您可以使用下列其中一種方法，來提供 Amazon EMR 所需的許可：
+ **(建議)** 將 `AmazonEMRServicePolicy_v2` 受管政策附接至服務角色。如需詳細資訊，請參閱[Amazon EMR 的服務角色 (EMR 角色)](emr-iam-role.md)。
+ 建立新的內嵌政策，以允許對安全群組執行 `ec2:RevokeSecurityGroupIngress` 動作。如需有關如何修改角色許可政策的詳細資訊，請參閱《IAM 使用者指南》**中的使用 [IAM 主控台](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)、[AWS API](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-api.html#roles-modify_permissions-policy-api) 和 [AWS CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-modify_permissions-policy-cli) **修改角色許可政策**。

## 解決封鎖公開存取違規問題
<a name="resolve-block-public-access"></a>

如果發生封鎖公開存取違規，您可以透過下列其中一個動作來緩解此問題：
+ 如果您想要存取叢集上的 Web 介面，請使用 [檢視 Amazon EMR 叢集上託管的 Web 介面](emr-web-interfaces.md) 中所述的其中一個選項透過 SSH (連接埠 22) 存取介面。
+ 若要允許從特定 IP 地址而非公有 IP 地址傳送至叢集的流量，請新增安全群組規則。如需詳細資訊，請參閱《Amazon EC2 入門指南》**中的[將規則新增至安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule)。
+ **(不建議)** 您可以設定 Amazon EMR BPA 例外狀況，以包含所需的連接埠或連接埠範圍。在您指定 BPA 例外狀況時，會對未受保護的連接埠造成風險。如果您計劃指定例外狀況，則應在不再需要例外狀況時立即予以移除。如需詳細資訊，請參閱[設定封鎖公開存取](#configure-block-public-access)。

## 識別與安全群組規則關聯的叢集
<a name="identify-block-public-access"></a>

您可能需要識別與指定安全群組規則關聯的所有叢集，或尋找指定叢集的安全群組規則。
+ 如果您知道安全群組，且尋找此安全群組的網路介面，則可以識別關聯的叢集。如需詳細資訊，請參閱 AWS re:Post上的[如何尋找與 Amazon EC2 安全群組關聯的資源？](https://forums.aws.amazon.com/knowledge-center/ec2-find-security-group-resources)。附接至這些網路介面的 Amazon EC2 執行個體將使用其所屬叢集的 ID 進行標記。
+ 如果您要尋找已知叢集的安全群組，請遵循 [檢視 Amazon EMR 叢集狀態和詳細資訊](emr-manage-view-clusters.md) 中的步驟進行。您可以在主控台的**網路和安全**面板中，或 AWS CLI的 `Ec2InstanceAttributes` 欄位中尋找叢集的安全群組。