Amazon EMR のパブリックアクセスブロックの使用 - Amazon EMR

Amazon EMR のパブリックアクセスブロックの使用

Amazon EMR のブロックパブリックアクセス (BPA) は、クラスターのセキュリティ設定でポートのパブリック IP アドレスからのインバウンドトラフィックが許可されている場合に、ユーザーがパブリックサブネットでクラスターを起動するのを防止します。

重要

ブロックパブリックアクセスはデフォルトで有効になっています。アカウントの保護を強化するには、これを有効のままにしておくことが推奨されます。

ブロックパブリックアクセスについて

ブロックパブリックアクセスのアカウントレベル設定を使用して、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 はデフォルトでは例外です。例外の設定の詳細については、「パブリックアクセスブロックの設定」を参照してください。

パブリックアクセスブロックの設定

アカウントのセキュリティグループとパブリックアクセスブロック設定は、いつでも更新できます。

ブロックパブリックアクセス (BPA) 設定の有効/無効は、AWS Management Console、AWS Command Line Interface (AWS CLI)、および Amazon EMR API を使用して切り替えることができます。設定はリージョンごとにアカウント全体に適用されます。クラスターセキュリティを維持するために、BPA を使用することが推奨されます。

Console
コンソールでブロックパブリックアクセスを設定する方法
  1. AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。

  2. 上部のナビゲーションバーで、設定するリージョンを選択します (まだ選択されていない場合)。

  3. 左側のナビゲーションペインの [EMR on EC2] で、[ブロックパブリックアクセス] を選択します。

  4. [Block public access settings (パブリックアクセスブロック設定)] で、以下の手順を実行します。

    実行方法 手順

    パブリックアクセスブロックをオンまたはオフにする

    [編集] を選択し、必要に応じて [有効にする] または [無効にする] を選択し、[保存] を選択します。

    例外のリスト内のポートを編集する

    1. [編集] を選択し、[ポート範囲の例外] セクションを見つけます。

    2. 例外のリストにポートを追加するには、[Add a port range (ポート範囲の追加)] を選択し、新しいポートまたはポート範囲を入力します。追加するポートまたはポート範囲ごとにこの操作を繰り返します。

    3. ポートまたはポート範囲を削除するには、ポート範囲のリストで、当該エントリの横にある [削除] を選択します。

    4. [Save] を選択します。

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 API、および AWS CLI を使用したロールアクセス許可ポリシーの変更を参照してください。

ブロックパブリックアクセス違反の解決

ブロックパブリックアクセス違反が発生した場合は、以下のいずれかのアクションを使用して軽減することができます。

  • クラスター上のウェブインターフェイスにアクセスする場合は、「Amazon EMR クラスターでホストされているウェブインターフェイスを表示する」で説明されているオプションのいずれかを使用して SSH (ポート 22) 経由でインターフェイスにアクセスします。

  • パブリック IP アドレスからではなく、特定の IP アドレスからクラスターへのトラフィックを許可するには、セキュリティグループルールを追加します。詳細については、「Amazon EC2 入門ガイド」の「セキュリティグループへのルールの追加」を参照してください。

  • (非推奨) Amazon EMR BPA 例外を設定して、目的のポートまたはポート範囲を含めることができます。BPA 例外を指定すると、保護されていないポートにリスクが生じます。例外を指定する予定がある場合は、不要になった例外は即時に削除してください。詳細については、「パブリックアクセスブロックの設定」を参照してください。

セキュリティグループのルールに関連付けられたクラスターを特定する

特定のセキュリティグループルールに関連付けられているすべてのクラスターを特定したり、特定のクラスターのセキュリティグループルールを確認したりする必要がある場合があります。

  • セキュリティグループがわかっている場合は、そのセキュリティグループのネットワークインターフェイスを見つければ、関連付けられているクラスターを特定できます。詳細については、「AWS re:Post」で「How can I find the resources associated with an Amazon EC2 security group?」を参照してください。これらのネットワークインターフェイスにアタッチされている Amazon EC2 インスタンスには、そのインスタンスが属するクラスターの ID がタグ付けされます。

  • 既知のクラスターのセキュリティグループを確認するには、「Amazon EMR クラスターステータスと詳細の表示」のステップを実行します。クラスターのセキュリティグループは、コンソールの [ネットワークとセキュリティ] パネル、または AWS CLI の Ec2InstanceAttributes フィールドで確認できます。