インターフェイス VPC エンドポイントを使用して Amazon EMR に接続する
インターネット経由で接続するのではなく、仮想プライベートクラウド (VPC) のインターフェイス VPC エンドポイント (AWS PrivateLink) を使用して Amazon EMR に直接接続できます。インターフェイス VPC エンドポイントを使用すると、VPC と Amazon EMR の間の通信は完全に AWS ネットワーク内で実施されます。各 VPC エンドポイントは、VPC サブネット内のプライベート IP アドレスを持つ 1 つ以上の Elastic Network Interface (ENI) で表されます。
インターフェイス VPC エンドポイントは VPC を Amazon EMR に直接接続します。その際、インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を使用しません。VPC のインスタンスは、パブリック IP アドレスがなくても Amazon EMR API と通信できます。
VPC 経由で Amazon EMR を使用するには、VPC 内にあるインスタンスから接続するか、Amazon Virtual Private Network (VPN) または Direct Connect を使用してプライベートネットワークを VPC に接続する必要があります。Amazon VPN については、「Amazon Virtual Private Cloud ユーザーガイド」の「VPN 接続」を参照してください。AWS Direct Connect の詳細については、「Direct Connect ユーザーガイド」の「接続を作成する」を参照してください。
インターフェイス VPC エンドポイントを作成し、AWS コンソールか AWS Command Line Interface (AWS CLI) コマンドのいずれかを使用して、Amazon EMR に接続できます。詳細については、「インターフェイスエンドポイントの作成」を参照してください。
インターフェイス VPC エンドポイントを作成した後、エンドポイントのプライベート DNS ホスト名を有効にすると、デフォルトの Amazon EMR エンドポイントはお客様の VPC エンドポイントに解決されます。Amazon EMR のデフォルトのサービス名エンドポイントは、次の形式です。
elasticmapreduce.Region.amazonaws.com
プライベート DNS ホスト名を有効にしない場合は、Amazon VPC が以下の形式で使用できる DNS エンドポイント名を提供します。
VPC_Endpoint_ID.elasticmapreduce.Region.vpce.amazonaws.com
詳細については、「Amazon VPC ユーザーガイド」の「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。
Amazon EMR は、VPC 内のすべての API アクションへの呼び出しをサポートしています。
VPC エンドポイントポリシーを VPC エンドポイントにアタッチして、IAM プリンシパルのアクセスを制御できます。また、セキュリティグループを VPC エンドポイントに関連付けて、ネットワークトラフィックの送信元と送信先 (IP アドレスの範囲など) に基づいてインバウンドとアウトバウンドのアクセスを制御することもできます。詳細については、「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。
Amazon EMR の VPC エンドポイントポリシーの作成
Amazon EMR の Amazon VPC エンドポイントに対するポリシーを作成して、以下を指定することができます。
-
アクションを実行できるプリンシパルまたは実行できないプリンシパル
-
実行可能なアクション
-
アクションを実行できるリソース
詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。
例 - 指定した AWS アカウントからのすべてのアクセスを拒否する VPC エンドポイントポリシー
次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 がエンドポイントを使用するリソースへのすべてのアクセスを拒否します。
{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }
例 - 指定した IAM プリンシパル (ユーザー) への VPC アクセスのみを許可する VPC エンドポイントポリシー
次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 のユーザー lijuan にのみフルアクセスを許可します。他のすべての IAM プリンシパルは、エンドポイントを使用したアクセスを拒否されます。
{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/lijuan" ] } }] }
例 - 読み取り専用の EMR オペレーションを許可する VPC エンドポイントポリシー
次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 にのみ、指定された Amazon EMR アクションの実行を許可します。
指定されたアクションは、Amazon EMR の読み取り専用アクセスに相当します。指定されたアカウントでは、VPC 上の他のすべてのアクションが拒否されます。他のすべてのアカウントは、すべてのアクセスを拒否されます。Amazon EMR アクションのリストについては、「Amazon EMR のアクション、リソース、および条件キー」を参照してください。
{ "Statement": [ { "Action": [ "elasticmapreduce:DescribeSecurityConfiguration", "elasticmapreduce:GetBlockPublicAccessConfiguration", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ViewEventsFromAllClustersInConsole", "elasticmapreduce:ListSteps", "elasticmapreduce:ListInstanceFleets", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeStep", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSecurityConfigurations", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:ListEditors" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }
例 - 指定したクラスターへのアクセスを拒否する VPC エンドポイントポリシー
次の VPC エンドポイントポリシーは、すべてのアカウントとプリンシパルにフルアクセスを許可しますが、AWS アカウント 123456789012 には、クラスター ID j-A1B2CD34EF5G を持つ Amazon EMR クラスターで実行されるアクションに対するすべてのアクセスを拒否します。クラスターのリソースレベルのアクセス許可をサポートしないその他の Amazon EMR アクションは、引き続き許可されます。Amazon EMR アクションのリストとそれに対応するリソースタイプについては、「Amazon EMR のアクション、リソース、および条件キー」を参照してください。
{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-west-2:123456789012:cluster/j-A1B2CD34EF5G", "Principal": { "AWS": [ "123456789012" ] } } ] }