インターフェイス VPC エンドポイントを使用した Amazon Redshift への接続 - Amazon Redshift

インターフェイス VPC エンドポイントを使用した Amazon Redshift への接続

インターネット経由で接続するのではなく、仮想プライベートクラウド (VPC) のインターフェイス VPC エンドポイント (AWS PrivateLink) を通じて Amazon Redshift API のサービスに直接接続できます。Amazon Redshift API アクションの詳細については、Amazon Redshift API リファレンスからアクションを参照してください。AWS PrivateLink の詳細については、Amazon VPC ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。クラスターへの JDBC/ODBC 接続は、Amazon Redshift API サービスの一部ではないことに注意してください。

インターフェイス VPC エンドポイントを使用すると、VPC と Amazon Redshift の間の通信は完全に AWS ネットワーク内で実施されるため、セキュリティが強化されます。各 VPC エンドポイントは、VPC サブネット内の 1 つ以上の Elastic Network Interface とプライベート IP アドレスで表されます。Elastic Network Interface の詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「Elastic Network Interface」を参照してください。

インターフェイス VPC エンドポイントは、VPC を Amazon Redshift に直接接続します。インターネットゲートウェイ、ネットワークアドレス変換 (NAT) デバイス、仮想プライベートネットワーク (VPN) 接続、または AWS Direct Connect 接続は使用されません。VPC のインスタンスは、パブリック IP アドレスがなくても Amazon Redshift API と通信できます。

VPC を介して Amazon Redshift を使用するには、2 つの方法があります。1 つは、VPC 内のインスタンスから接続することです。もう 1 つの方法として、AWS VPN オプションまたは AWS Direct Connect を使用して、プライベートネットワークを VPC に接続する方法があります。AWS VPN オプションの詳細については、Amazon VPC ユーザーガイドの「VPN 接続」を参照してください。AWS Direct Connect の詳細については、AWS Direct Connect ユーザーガイドの「コネクションの作成」を参照してください。

インターフェイス VPC エンドポイントを作成し、AWS Management Console か AWS Command Line Interface (AWS CLI) コマンドのいずれかを使用して、Amazon Redshift に接続できます。詳細については、「インターフェイスエンドポイントの作成」を参照してください。

インターフェイス VPC エンドポイントを作成した後、エンドポイントのプライベート DNS ホスト名を有効にできます。これを行うと、デフォルトの Amazon Redshift エンドポイント (https://redshift.Region.amazonaws.com) は VPC エンドポイントで解決されます。

プライベート DNS ホスト名を有効にしない場合は、Amazon VPC が以下の形式で使用できる DNS エンドポイント名を提供します。

VPC_endpoint_ID.redshift.Region.vpce.amazonaws.com

詳細については、Amazon VPC ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

Amazon Redshift は、VPC 内のすべての API オペレーションへの呼び出しをサポートしています。

VPC エンドポイントポリシーを VPC エンドポイントにアタッチして、AWS Identity and Access Management (IAM) プリンシパルのアクセスを制御できます。また、セキュリティグループを VPC エンドポイントに関連付けて、ネットワークトラフィックの送信元と送信先に基づいてインバウンドとアウトバウンドのアクセスを制御することもできます。IP アドレスの例はです。詳細については、Amazon VPC ユーザーガイド VPC エンドポイントによるサービスのアクセスコントロールを参照してください。

Amazon Redshift VPC エンドポイントのポリシーを作成できます。このポリシーでは以下を指定します。

  • アクションを実行できるプリンシパルまたは実行できないプリンシパル

  • 実行可能なアクション

  • アクションを実行できるリソース

詳細については、「Amazon VPC ユーザーガイド」の「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。

以下に、VPC エンドポイントポリシーの例を示します。

次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 からリソースへのエンドポイントを使用したすべてのアクセスを拒否します。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 の IAM ロール redshiftrole にのみフルアクセスを許可します。他のすべてのプリンシパルは、エンドポイントを使用したアクセスを拒否されます。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/redshiftrole" ] } }] }

これはサンプルのみです。ほとんどのユースケースでは、特定のアクションにアクセス許可を付与してアクセス許可の範囲を狭めることをお勧めします。

次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 の IAM ユーザー redshiftadmin にのみフルアクセスを許可します。他のすべてのプリンシパルは、エンドポイントを使用したアクセスを拒否されます。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/redshiftadmin" ] } }] }

これはサンプルのみです。ほとんどのユースケースでは、ユーザーにロールを割り当てる前にロールにアクセス許可をアタッチすることをお勧めします。また、特定のアクションを使用してアクセス許可の範囲を狭めることをお勧めします。

次の VPC エンドポイントポリシーは、AWS アカウント 123456789012 にのみ、指定された Amazon Redshift アクションの実行を許可します。

指定されたアクションは、Amazon Redshift の読み込み専用アクセスに相当します。指定されたアカウントでは、VPC 上の他のすべてのアクションが拒否されます。他のすべてのアカウントは、すべてのアクセスを拒否されます。Amazon Redshift アクションのリストを表示するには、「IAM ユーザーガイド」の「Amazon Redshift のアクション、リソース、および条件キー」を参照してください。

{ "Statement": [ { "Action": [ "redshift:DescribeAccountAttributes", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterParameters", "redshift:DescribeClusterSecurityGroups", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusterSubnetGroups", "redshift:DescribeClusterVersions", "redshift:DescribeDefaultClusterParameters", "redshift:DescribeEventCategories", "redshift:DescribeEventSubscriptions", "redshift:DescribeHsmClientCertificates", "redshift:DescribeHsmConfigurations", "redshift:DescribeLoggingStatus", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeQuery", "redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:DescribeResize", "redshift:DescribeSavedQueries", "redshift:DescribeScheduledActions", "redshift:DescribeSnapshotCopyGrants", "redshift:DescribeSnapshotSchedules", "redshift:DescribeStorage", "redshift:DescribeTable", "redshift:DescribeTableRestoreStatus", "redshift:DescribeTags", "redshift:FetchResults", "redshift:GetReservedNodeExchangeOfferings" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

次の VPC エンドポイントポリシーは、すべてのアカウントとプリンシパルのフルアクセスを許可します。同時に、クラスター ID my-redshift-cluster の Amazon Redshift クラスターで実行されたアクションへの AWS アカウント 123456789012 のアクセスを拒否します。クラスターのリソースレベルのアクセス許可をサポートしないその他の Amazon Redshift アクションは、引き続き許可されます。Amazon Redshift アクションおよび対応するリソースタイプのリストについては、「IAM ユーザーガイド」の「Amazon Redshift のアクション、リソース、および条件キー」を参照してください。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster", "Principal": { "AWS": [ "123456789012" ] } } ] }