セキュリティグループによるアクセス制御
VPC セキュリティグループにより DB インスタンスに対する送受信トラフィックへのアクセスを制御します。デフォルトでは、ネットワークアクセスは DB インスタンスに対してオフになっています。セキュリティグループで IP アドレス範囲、ポート、またはセキュリティグループからのアクセスを許可するルールを指定できます。Ingress ルールを設定したら、そのセキュリティグループに関連付けられているすべての DB インスタンスに、同じルールが適用されます。セキュリティグループでは最大 20 のルールを指定できます。
VPC セキュリティグループの概要
VPC セキュリティグループの各ルールにより、特定のソースがその VPC セキュリティグループに関連付けられている VPC 内の DB インスタンスにアクセスできるようになります。ソースとしては、アドレスの範囲 (203.0.113.0/24 など) または別の VPC セキュリティグループを指定できます。VPC セキュリティグループをソースとして指定すると、ソース VPC セキュリティグループを使用するすべてのインスタンス (通常はアプリケーションサーバー) からの受信トラフィックを許可することになります。VPC セキュリティグループには、インバウンドトラフィックとアウトバウンドトラフィック両方を制御するルールを追加できます。ただし、アウトバウンドトラフィックのルールは通常、DB インスタンスには適用されません。送信トラフィックのルールは、DB インスタンス がクライアントである場合にのみ適用されます。例えば、送信トラフィックのルールは送信データベースリンクがある Oracle DB インスタンスに適用されます。VPC セキュリティグループを作成するには、「Amazon EC2 API」を使用するか、VPC コンソールの [Security Group] (セキュリティグループ) オプションを使用する必要があります。
VPC 内のインスタンスへのアクセスを許可する VPC セキュリティグループのルールを作成するときは、そのルールがアクセスを許可するアドレスの範囲ごとにポートを指定する必要があります。例えば、VPC 内のインスタンスへの Secure Shell (SSH) アクセスをオンにするには、指定したアドレスの範囲の TCP ポート 22 に対するアクセスを許可するルールを作成します。
VPC 内の異なるインスタンスに対する異なるポートへのアクセスを許可する複数の VPC セキュリティグループを設定できます。例えば、VPC のウェブサーバーに TCP ポート 80 へのアクセスを許可する VPC セキュリティグループを作成できます。次に、VPC の RDS for MySQL DB インスタンスの TCP ポート 3306 へのアクセスを許可する別の VPC セキュリティグループを作成できます。
VPC セキュリティグループの詳細については、Amazon Virtual Private Cloud ユーザーガイドの「セキュリティグループ」を参照してください。
注記
DB インスタンス が VPC 内にあるが、パブリックアクセス可能でない場合は、AWS Site-to-Site VPN 接続または AWS Direct Connect 接続を使用してプライベートネットワークからアクセスすることもできます。詳しくは、「インターネットトラフィックのプライバシー」を参照してください。
セキュリティグループのシナリオ
VPC 内の DB インスタンスの一般的な用途は、同じ VPC 内の Amazon EC2 インスタンスで実行され、VPC の外にあるクライアントアプリケーションによってアクセスされるアプリケーションサーバーとデータを共有することです。このシナリオでは、AWS Management Consoleの RDS および VPC ページ、または RDS および EC2 API オペレーションを使用して、必要なインスタンスおよびセキュリティグループを作成します。
-
VPC セキュリティグループ (「
sg-0123ec2example
」など) を作成し、ソースとしてクライアントアプリケーションの IP アドレスを使用するという受信ルールを定義します。このセキュリティグループにより、クライアントアプリケーションは、このセキュリティグループを使用する VPC 内の EC2 インスタンスに接続できるようになります。 -
アプリケーションの EC2 インスタンスを作成し、前のステップで作成した VPC セキュリティグループ (「
sg-0123ec2example
」) に EC2 インスタンスを追加します。 -
2 つ目の VPC セキュリティグループ (「
sg-6789rdsexample
」など) を作成し、ステップ 1 で作成した VPC セキュリティグループ (「sg-0123ec2example
」) をソースとして指定して新しいルールを作成します。 -
新しい DB インスタンスを作成し、その DB インスタンスを前のステップで作成した VPC セキュリティグループ (「
sg-6789rdsexample
」) に追加します。DB インスタンスを作成するとき、ステップ 3 で作成した VPC セキュリティグループ (「sg-6789rdsexample
」) のルールに指定した同じポート番号を使用します。
以下の図に、このシナリオを示しています。
![VPC 内の DB インスタンスと EC2 インスタンス](images/con-VPC-sec-grp.png)
このシナリオの VPC 設定の詳細については、「チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)」をご参照ください。VPC の使用方法の詳細については、「Amazon VPC と Amazon RDS」を参照してください。
VPC セキュリティグループを作成する
DB インスタンスの VPC セキュリティグループは、VPC コンソールを使って作成できます。セキュリティグループを作成する方法については、Amazon Virtual Private Cloud ユーザーガイドの「セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する」および「セキュリティグループ」を参照してください。
セキュリティグループを DB インスタンスと関連付ける
RDS コンソールの [変更]、ModifyDBInstance
Amazon RDS API、または modify-db-instance
AWS CLI コマンドを使用して、セキュリティグループを DB インスタンスに関連付けることができます。
次の CLI の例では、特定の VPC セキュリティグループを関連付け、DB インスタンスから DB セキュリティグループを削除します。
aws rds modify-db-instance --db-instance-identifier
dbName
--vpc-security-group-idssg-ID
DB インスタンスの変更については、Amazon RDS DB インスタンスを変更するを参照してください。DB スナップショットから DB インスタンスを復元するときのセキュリティグループの考慮事項については、「セキュリティグループに関する考慮事項」を参照してください。
注記
ポート値がデフォルト以外の値に設定されている場合、RDS コンソールにはデータベースのさまざまなセキュリティグループルール名が表示されます。
RDS for Oracle DB インスタンスでは、Oracle Enterprise Manager Database Express (OEM)、Oracle Management Agent for Enterprise Manager Cloud Control (OEM Agent)、および Oracle Secure Sockets Layer オプションのセキュリティグループオプション設定を入力することで、追加のセキュリティグループを関連付けることができます。この場合、DB インスタンスに関連付けられているセキュリティグループとオプション設定の両方が DB インスタンスに適用されます。これらのオプショングループの詳細については、「Oracle Enterprise Manager」、「Enterprise Manager Cloud Control 向け Oracle Management Agent」「Oracle Secure Sockets Layer」を参照してください。