プロビジョニング済みの Amazon Aurora DB クラスターがあり、パブリックにアクセスできるように設定したいと考えています。また、外部接続から Aurora DB クラスターを保護することも考えています。これを行うにはどうすればよいですか?
簡単な説明
Amazon Virtual Private Cloud (Amazon VPC) の外部から Aurora DB クラスターに接続するには、クラスター内のインスタンスが次の要件を満たしている必要があります。
- DB インスタンスにパブリック IP アドレスがあること。
- DB インスタンスがパブリックにアクセス可能なサブネットで実行されること。
DB インスタンスを VPC の外部から接続するように設定することに加えて、Transport Layer Security (TLS) を使用して接続を保護できること。
解決方法
DB インスタンスの [Publicly Accessible] (パブリックアクセス可能) 設定を [Yes] (はい) に設定します
Amazon Relational Database Service (Amazon RDS) DB インスタンスの [ Publicly Accessible] (パブリックアクセス可能) 設定は、DB インスタンスへのパブリック IP アドレスの割り当てを制御します。
- これを [No] (いいえ) に設定すると、DB インスタンスにはパブリック IP アドレスが割り当てられません。
- これが [Yes] (はい) に設定されている場合、DB インスタンスにはパブリック IP アドレスとプライベート IP アドレスの両方が割り当てられます。
DB インスタンスの [Publicly Accessible] (パブリックアクセス可能) 設定を [Yes] (はい) に変更するには、次の手順に従います。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで、[Databases] (データベース) を選択し、DB インスタンスを選択します。
- [Modify] (変更) を選択します。
- [Connectivity] (接続) で、[Additional configuration] (追加の構成) セクションを展開し、[Publicly accessible] (パブリックアクセス可能) を選択します。
- [Continue] (続行) を選択します。
- [Modify DB Instance] (DB インスタンスを変更) を選択します。
注意: [Apply Immediately] (すぐに適用) を選択する必要はありません。[Apply Immediately] (すぐに適用) がダウンタイムに与える影響については、「[すぐに適用] 設定を使用する」を参照してください。
パブリックサブネットで DB インスタンスを実行する
パブリックサブネットは、インターネットゲートウェイへのルート (一般的に 0.0.0.0/0 のデフォルトルート) があるルートテーブルに関連付けられたサブネットです。このルートにより、サブネット内の DB インスタンスが VPC 外のリソースと通信できるようになります。
Aurora DB インスタンスの場合、特定のサブネットを選択することはできません。代わりに、インスタンスの作成時に DB サブネットグループを選択します。
DB サブネットグループは、VPC に属するサブネットのコレクションです。基盤となるホストを作成すると、Amazon RDS は DB サブネットグループからサブネットをランダムに選択します。通常、VPC にはパブリックサブネットとプライベートサブネットの両方があります。DB サブネットグループにパブリックサブネットとプライベートサブネットの両方が含まれている場合は、基盤となるホストは、パブリックサブネットまたはプライベートサブネットのいずれかで起動できます。基盤となるホストがプライベートサブネットで起動されている場合、VPC 外から DB インスタンスに接続することはできません。
その場合、同様のネットワーク構成のサブネットを持つ DB サブネットグループを作成します。例えば、パブリックサブネット用の DB サブネットグループやプライベートサブネット用の 2 番目の DB サブネットグループを作成します。詳細については、「サブネットグループでの DB インスタンスの使用」を参照してください。
DB インスタンスが使用するサブネットにインターネットアクセスがあることを確認するには、次の手順に従います。
- VPC にインターネットゲートウェイがアタッチされていることを確認してください。
- DB サブネットグループ内のすべてのサブネットで、インターネットゲートウェイのルートテーブルが使用されていることを確認します。
- サブネットが VPC のメインルートテーブルを使用する場合は、インターネットゲートウェイのルートを追加します (送信先は 0.0.0.0/0)。
- 必要に応じて、インターネットゲートウェイへのルートを含むカスタムルートテーブルを作成し、サブネットに関連付けます。
- セキュリティグループのインバウンドルールで、DB インスタンスに接続するソースパブリック IP アドレスを追加します。
- ルールの [Type] (タイプ) で、エンジンのタイプに応じて [MySQL/Aurora] または [PostgreSQL] を選択します。
- [Source] (ソース) で CIDR 範囲を手動で入力するか、[My IP] (マイ IP) を選択して同じワークステーションから DB インスタンスに接続します。
VPC 外からの接続から DB クラスターを保護する
データ転送はインターネット経由で行われるため、TLS を使用して VPC 外からの接続を暗号化できます。最高レベルのセキュリティを使用していることを確認するには、ssl-ca パラメーターを使用して CA 証明書を渡し、ホスト名の検証を有効にします。使用している Aurora のバージョンに応じて、TLS 接続で次のコマンドの例を使用します。
Amazon Aurora MySQL 互換エディション 5.6 以降:
mysql -h test-aurora-56.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert
Aurora MySQL 互換 5.7 以降:
mysql -h test-aurora-57.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY
Amazon Aurora PostgreSQL 互換エディション:
psql -h test-aurora-pg.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=master_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"
注意: DB クラスターに TLS を適用することもできます。Aurora MySQL の場合は、データベースユーザーレベルで TLS を適用する必要があります。Aurora PostgreSQL 互換の場合は、パラメータ rds.force_ssl を 1 に設定します。
関連情報
Aurora MySQL DB クラスターでの SSL/TLS の使用
SSLでの Aurora PostgreSQLデータの保護
Linux/macOS マシンから要塞ホストを使用して Amazon RDS DB インスタンスに接続するにはどうすればよいですか。
Amazon RDS コンソールで、プライベートおよびパブリックの Aurora エンドポイントを設定する方法を教えてください。