インターフェイス VPC エンドポイントを使用して Amazon Athena に接続する
VPC のセキュリティ体制を改善するには、Virtual Private Cloud (VPC) のインターフェイス VPC エンドポイント (AWS PrivateLink) と AWS Glue VPC エンドポイントを使用します。インターフェイス VPC エンドポイントは、VPC 内からどの送信先に到達できるかを制御できるようにすることで、セキュリティを強化します。各 VPC エンドポイントは、VPC サブネット内のプライベート IP アドレスを持つ 1 つ以上の Elastic Network Interface (ENI) で表されます。
インターフェイス VPC エンドポイントは VPC を Athena に直接接続します。その際、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を使用しません。VPC 内のインスタンスが Athena API と通信するためにパブリック IP アドレスは必要ありません。
VPC 経由で Athena を使用するには、VPC 内にあるインスタンスから接続するか、Amazon Virtual Private Network (VPN) または AWS Direct Connect を使用してプライベートネットワークを VPC に接続する必要があります。Amazon VPN については、「Amazon Virtual Private Cloud ユーザーガイド」の「VPN 接続」を参照してください。AWS Direct Connect の詳細については、「AWS Direct Connect ユーザーガイド」の「接続を作成する」を参照してください。
Athena は、Amazon VPC と Athena の両方が利用可能なすべての AWS リージョン で VPC エンドポイントをサポートしています。
インターフェイス VPC エンドポイントを作成し、AWS Management Console か AWS Command Line Interface (AWS CLI) コマンドのいずれかを使用して、Athena に接続できます。詳細については、「インターフェイスエンドポイントの作成」を参照してください。
インターフェイス VPC エンドポイントを作成した後、エンドポイントのプライベート DNS ホスト名を有効にすると、デフォルトの Athena エンドポイント (https://athena.Region
.amazonaws.com) が VPC エンドポイントに解決されます。
プライベート DNS ホスト名を有効にしない場合は、Amazon VPC が以下の形式で使用できる DNS エンドポイント名を提供します。
VPC_Endpoint_ID
.athena.Region
.vpce.amazonaws.com
詳細については、「Amazon VPC ユーザーガイド」の「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。
Athena は、VPC 内にあるすべての API アクションへの呼び出しをサポートします。
Athena の VPC エンドポイントポリシーを作成する
Athena の Amazon VPC エンドポイントに対するポリシーを作成して、以下のような制限を指定することができます。
-
[プリンシパル] – アクションを実行できるプリンシパル。
-
[アクション] – 実行可能なアクション。
-
[リソース] – このアクションを実行できるリソース。
-
[信頼できる D のみ] —
aws:PrincipalOrgId
条件を使用して、AWS 組織の一部である認証情報のみにアクセスを制限します。これにより、意図しないプリンシパルによるアクセスを防ぐことができます。 -
[信頼できるリソースのみ] —
aws:ResourceOrgId
条件を使用して、意図しないリソースへのアクセスを防ぎます。 -
[信頼できる ID とリソースのみ] — VPC エンドポイント用のポリシーを組み合わせて、意図しないプリンシパルやリソースへのアクセスを防ぎます。
詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイントによるサービスへのアクセスの制御」および、AWS ホワイトペーパー「AWS におけるデータ境界の構築」の「付録 2 — VPC エンドポイントポリシーの例」を参照してください。
例 – VPC エンドポイントポリシー
次の例では、組織リソースへの組織 ID によるリクエストを許可し、AWS サービスプリンシパルによるリクエストを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "
my-org-id
", "aws:ResourceOrgID": "my-org-id
" } } }, { "Sid": "AllowRequestsByAWSServicePrincipals", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": "*", "Condition": { "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
IAM ポリシーを使用するときは、常に IAM のベストプラクティスに従うようにしてください。詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティベストプラクティス」を参照してください。
共有サブネットの VPC エンドポイントについて
自分と共有されているサブネットで VPC エンドポイントを作成、説明、変更、または削除することはできません。ただし、VPC エンドポイントを使用することはできます。VPC 共有の詳細については、「Amazon VPC ユーザーガイド」の「VPC を他のアカウントと共有する」を参照してください。