DB セキュリティグループの操作 (EC2-Classic プラットフォーム) - Amazon Relational Database Service

DB セキュリティグループの操作 (EC2-Classic プラットフォーム)

デフォルトでは、ネットワークアクセスは DB インスタンスに対してオフになっています。セキュリティグループで、IP アドレス範囲、ポート、または EC2 セキュリティグループからのアクセスを許可するルールを指定できます。Ingress ルールを設定すると、そのセキュリティグループに関連付けられているすべての DB インスタンスに、同じルールが適用されます。セキュリティグループでは最大 20 のルールを指定できます。

Amazon RDS は 2 種類の異なるセキュリティグループをサポートします。どちらを使用するかは、どの Amazon RDS プラットフォームを使用しているかによって決まります。

  • VPC セキュリティグループ – EC2-VPC プラットフォーム用。

  • DB セキュリティグループ – EC2-Classic プラットフォーム用。

以下のいずれかが true である場合、EC2-VPC プラットフォームを使用していると思われます (よって、VPC セキュリティグループを使用する必要があります)。

  • Amazon RDS の新たな顧客である場合。

  • DB インスタンスを以前に作成したことがない場合。

  • 以前に使用したことのない AWS リージョンで DB インスタンスを作成使用としている場合。

それ以外の場合で、EC2-Classic プラットフォームを使用しているときは、DB セキュリティグループを使用して Amazon RDS DB インスタンスへのアクセスを管理します。DB セキュリティグループと VPC セキュリティグループの違いの詳細については、「セキュリティグループによるアクセスコントロール」を参照してください。

注記

どのプラットフォームを使用しているかを確認するには、「EC2-VPC または EC2-Classic のどちらのプラットフォームを使用しているかを確認する」を参照してください。

EC2-VPC プラットフォームを使用している場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

DB セキュリティグループを作成する

DB セキュリティグループを作成するには、名前と説明を入力する必要があります。

DB セキュリティグループを作成するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

  3. [Create DB Security Group] を選択します。

  4. [Name] および [Description] テキストボックスに、新しい DB セキュリティグループの名前と説明を入力します。セキュリティグループ名には、スペースを使用できない、先頭を数字にできないという制限があります。

  5. [Yes, Create] を選択します。

    DB セキュリティグループが作成されます。

    新しく作成される DB セキュリティグループでは、DB インスタンスにアクセスできないのがデフォルトです。DB インスタンスにアクセスできる IP アドレスの範囲または EC2-Classic セキュリティグループを指定する必要があります。DB セキュリティグループ用の IP アドレスまたは EC2-Classic セキュリティグループを指定する方法については、「IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する」を参照してください。

DB セキュリティグループを作成するには、AWS CLI の create-db-security-group コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds create-db-security-group \ --db-security-group-name mydbsecuritygroup \ --db-security-group-description "My new security group"

Windows の場合:

aws rds create-db-security-group ^ --db-security-group-name mydbsecuritygroup ^ --db-security-group-description "My new security group"

新しく作成される DB セキュリティグループでは、DB インスタンスにアクセスできないのがデフォルトです。DB インスタンスにアクセスできる IP アドレスの範囲または EC2-Classic セキュリティグループを指定する必要があります。DB セキュリティグループ用の IP アドレスまたは EC2-Classic セキュリティグループを指定する方法については、「IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する」を参照してください。

DB セキュリティグループを作成するには、以下のパラメータを指定して Amazon RDS 組み込み関数 CreateDBSecurityGroup を呼び出します。

  • DBSecurityGroupName = mydbsecuritygroup

  • Description = "My new security group"

https://rds.amazonaws.com/ ?Action=CreateDBSecurityGroup &DBSecurityGroupName=mydbsecuritygroup &Description=My%20new%20db%20security%20group &Version=2012-01-15 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2012-01-20T22%3A06%3A23.624Z &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>

新しく作成される DB セキュリティグループでは、DB インスタンスにアクセスできないのがデフォルトです。DB インスタンスにアクセスできる IP アドレスの範囲または EC2-Classic セキュリティグループを指定する必要があります。DB セキュリティグループ用の IP アドレスまたは EC2-Classic セキュリティグループを指定する方法については、「IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する」を参照してください。

利用可能な DB セキュリティグループをリスト化する

AWS アカウント用に作成された DB セキュリティグループを一覧表示できます。

AWS アカウントで利用可能なすべての DB セキュリティグループを一覧表示するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    利用可能な DB セキュリティグループが [DB Security Groups] リストに一覧表示されます。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

AWS アカウントのすべての利用可能な DB セキュリティグループを表示するには、パラメータを指定せずに AWS CLI コマンド describe-db-security-groups を使用します。

aws rds describe-db-security-groups

AWS アカウントのすべての利用可能な DB セキュリティグループを表示するには、パラメータを指定せずに DescribeDBSecurityGroups を呼び出します。

https://rds.amazonaws.com/ ?Action=DescribeDBSecurityGroups &MaxRecords=100 &Version=2009-10-16 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>

DB セキュリティグループを表示する

DB セキュリティグループに関する詳細情報を表示すると、どの IP 範囲が承認されたか確認することができます。

特定の DB セキュリティグループのプロパティを表示するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

  3. 表示する DB セキュリティグループの詳細アイコンを選択します。DB セキュリティグループの詳細情報が表示されます。

特定の DB セキュリティグループのプロパティを表示するには、AWS CLI の describe-db-security-groups を使用します。表示する DB セキュリティグループを指定します。

Linux、macOS、Unix の場合:

aws rds describe-db-security-groups \ --db-security-group-name mydbsecuritygroup

Windows の場合:

aws rds describe-db-security-groups ^ --db-security-group-name mydbsecuritygroup

特定の DB セキュリティグループのプロパティを表示するには、以下のパラメータを指定して DescribeDBSecurityGroups を呼び出します。

  • DBSecurityGroupName=mydbsecuritygroup

https://rds.amazonaws.com/ ?Action=DescribeDBSecurityGroups &DBSecurityGroupName=mydbsecuritygroup &Version=2009-10-16 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-16T22%3A23%3A07.107Z &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>

DB セキュリティグループを DB インスタンスと関連付ける

RDS コンソールの [Modify] オプション、ModifyDBInstance Amazon RDS API、または AWS CLI modify-db-instance コマンドを使用して、DB セキュリティグループを DB インスタンスに関連付けることができます。

DB インスタンスの変更については、Amazon RDS DB インスタンスを変更するを参照してください。

IP 範囲からのネットワークアクセスを DB セキュリティグループに許可する

デフォルトでは、ネットワークアクセスは DB インスタンスに対してオフになっています。VPC にない DB インスタンスにアクセスする場合は、特定の EC2-Classic セキュリティグループまたは CIDR IP 範囲からのアクセスを許可するように DB セキュリティグループのアクセスルールを設定する必要があります。続いて、その DB インスタンスをその DB セキュリティグループに関連付ける必要があります。このプロセスは、イングレスと呼ばれています。いったん DB セキュリティグループに対してイングレスが設定されると、同じイングレスルールがその DB セキュリティグループに関連付けられたすべての DB インスタンスに適用されます。

警告

ファイアウォールの内側にある DB インスタンスにアクセスする場合は、ネットワーク管理者と相談して、使用する IP アドレスを決定してください。

以下の例では、DB セキュリティグループに CIDR IP 範囲用のイングレスルールを設定します。

DB セキュリティグループに CIDR IP 範囲用の Ingress ルールを設定するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

  3. 承認する DB セキュリティグループの詳細アイコンを選択します。

  4. セキュリティグループの詳細ページで、[Connection Type] ドロップダウンリストから [CIDR/IP] を選択し、[CIDR] テキストボックスに、この DB セキュリティグループに追加する受信ルールの CIDR 範囲を入力して、[Authorize] を選択します。

    ヒント

    AWS マネジメントコンソールの [CIDR] テキストフィールドの下に、接続に基づいて CIDR IP が表示されます。ファイアウォールの内側から DB インスタンスにアクセスしていない場合、この CIDR IP を使用できます。

  5. Ingress ルールのステータスは、変更した DB セキュリティグループに関連付けられたすべての DB インスタンスに新しい Ingress ルールが適用されるまで、authorizing になります。Ingress ルールが正常に適用されると、ステータスは authorized に変わります。

DB セキュリティグループに CIDR IP 範囲用の Ingress ルールを設定するには、AWS CLI の authorize-db-security-group-ingress コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds authorize-db-security-group-ingress \ --db-security-group-name mydbsecuritygroup \ --cidrip 192.168.1.10/27

Windows の場合:

aws rds authorize-db-security-group-ingress ^ --db-security-group-name mydbsecuritygroup ^ --cidrip 192.168.1.10/27

このコマンドでは、次のような出力が生成されます。

SECGROUP mydbsecuritygroup My new DBSecurityGroup IP-RANGE 192.168.1.10/27 authorizing

DB セキュリティグループに CIDR IP 範囲用の Ingress ルールを設定するには、以下のパラメータを指定して Amazon RDS API の AuthorizeDBSecurityGroupIngress を呼び出します。

  • DBSecurityGroupName = mydbsecuritygroup

  • CIDRIP = 192.168.1.10/27

https://rds.amazonaws.com/ ?Action=AuthorizeDBSecurityGroupIngress &CIDRIP=192.168.1.10%2F27 &DBSecurityGroupName=mydbsecuritygroup &Version=2009-10-16 &Action=AuthorizeDBSecurityGroupIngress &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-22T17%3A10%3A50.274Z &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>

Amazon EC2 インスタンスからのネットワークアクセスを DB インスタンスに許可する

Amazon EC2 インスタンスから DB インスタンスにアクセスする場合は、まず EC2 インスタンスと DB インスタンスが VPC 内にあるかどうかを判断する必要があります。デフォルト VPC を使用している場合は、EC2 インスタンスがアクセスする DB インスタンスを作成または変更するときに EC2 インスタンスで使用したのと同じ EC2 または VPC セキュリティグループを割り当てることができます。

DB インスタンスと EC2 インスタンスが VPC 内にない場合は、DB インスタンスのセキュリティグループに、Amazon EC2 インスタンスからのトラフィックを許可するイングレスルールを設定する必要があります。これは、EC2 インスタンスの EC2-Classic セキュリティグループを DB インスタンスの DB セキュリティグループに追加することで実行します。この例では、EC2-Classic セキュリティグループに対し、イングレスルールを DB セキュリティグループに追加します。

重要
  • EC2-Classic セキュリティグループに対してイングレスルールを DB セキュリティグループに追加しても、その EC2-Classic セキュリティグループに関連付けられている Amazon EC2 インスタンスから DB インスタンスへのアクセスが許可されるだけです。

  • DB インスタンスとは異なる AWS リージョンにある EC2-Classic セキュリティグループを承認することはできません。IP 範囲を承認すること、または、別の AWS リージョンの IP アドレスを指す同じ AWS リージョンの EC2-Classic セキュリティグループを指定することはできます。IP 範囲を指定する場合は、Amazon EC2 インスタンスのプライベート IP アドレスを使用することをお勧めします。この方が Amazon EC2 インスタンスから Amazon RDS DB インスタンスへのネットワーク経路としてより直接的であり、Amazon ネットワークの外部に送信するデータのネットワーク料金も発生しません。

EC2-Classic セキュリティグループを DB セキュリティグループに追加するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

  3. アクセスを許可する DB セキュリティグループの詳細アイコンを選択します。

  4. セキュリティグループの詳細ページで、[Connection Type] に [EC2 Security Group] を選択し、使用する EC2-Classic セキュリティグループを選択します。次に、[Authorize] を選択します。

  5. Ingress ルールのステータスは、変更した DB セキュリティグループに関連付けられたすべての DB インスタンスに新しい Ingress ルールが適用されるまで、authorizing になります。Ingress ルールが正常に適用されると、ステータスは authorized に変わります。

EC2-Classic セキュリティグループにアクセスを許可するには、AWS CLI の authorize-db-security-group-ingress コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds authorize-db-security-group-ingress \ --db-security-group-name default \ --ec2-security-group-name myec2group \ --ec2-security-group-owner-id 987654321021

Windows の場合:

aws rds authorize-db-security-group-ingress ^ --db-security-group-name default ^ --ec2-security-group-name myec2group ^ --ec2-security-group-owner-id 987654321021

このコマンドでは、次のような出力が生成されます。

SECGROUP Name Description SECGROUP default default EC2-SECGROUP myec2group 987654321021 authorizing

EC2-Classic セキュリティグループにネットワークアクセスを許可するには、以下のパラメータを指定してその Amazon RDS API 関数 https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthorizeDBSecurityGroupIngress.htmlAuthorizeDBSecurityGroupIngress を呼び出します。

  • EC2Security­GroupName = myec2group

  • EC2SecurityGroupOwnerId = 987654321021

https://rds.amazonaws.com/ ?Action=AuthorizeDBSecurityGroupIngress &EC2SecurityGroupOwnerId=987654321021 &EC2Security­GroupName=myec2group &Version=2009-10-16 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-22T17%3A10%3A50.274Z &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>

DB インスタンスに対する IP 範囲からのネットワークアクセスを取り消す

DB セキュリティグループに属する DB インスタンスに対する CIDR IP 範囲からのネットワークアクセスは、関連付けられた CIDR IP イングレスルールを取り消すことで、簡単に取り消すことができます。

この例では、DB セキュリティグループの CIDR IP 範囲イングレスルールを取り消します。

DB セキュリティグループの CIDR IP 範囲用の Ingress ルールを取り消すには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

    注記

    EC2-VPC プラットフォームを使用している場合、[セキュリティグループ] オプションはナビゲーションペインに表示されません。この場合は、DB セキュリティグループの代わりに VPC セキュリティグループを使用する必要があります。VPC の使用方法の詳細については、「Amazon Virtual Private Cloud VPC および Amazon RDS」を参照してください。

  3. 取り消すイングレスルールのある DB セキュリティグループの詳細アイコンを選択します。

  4. セキュリティグループの詳細ページで、取り消す受信ルールの横にある [Remove] を選択します。

  5. Ingress ルールのステータスは、変更した DB セキュリティグループに関連付けられたすべての DB インスタンスから Ingress ルールが削除されるまで、revoking になります。Ingress ルールが正常に削除されると、その Ingress ルールは DB セキュリティグループから削除されます。

DB セキュリティグループの CIDR IP 範囲用の Ingress ルールを取り消すには、AWS CLI の revoke-db-security-group-ingress コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds revoke-db-security-group-ingress \ --db-security-group-name mydbsecuritygroup \ --cidrip 192.168.1.1/27

Windows の場合:

aws rds revoke-db-security-group-ingress ^ --db-security-group-name mydbsecuritygroup ^ --cidrip 192.168.1.1/27

このコマンドでは、次のような出力が生成されます。

SECGROUP mydbsecuritygroup My new DBSecurityGroup IP-RANGE 192.168.1.1/27 revoking

DB セキュリティグループの CIDR IP 範囲用の Ingress ルールを取り消すには、以下のパラメータを指定して Amazon RDS API オペレーション https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RevokeDBSecurityGroupIngress.htmlRevokeDBSecurityGroupIngress を呼び出します。

  • DBSecurityGroupName = mydbsecuritygroup

  • CIDRIP = 192.168.1.10/27

https://rds.amazonaws.com/ ?Action=RevokeDBSecurityGroupIngress &DBSecurityGroupName=mydbsecuritygroup &CIDRIP=192.168.1.10%2F27 &Version=2009-10-16 &SignatureVersion=2&SignatureMethod=HmacSHA256 &Timestamp=2009-10-22T22%3A32%3A12.515Z &AWSAccessKeyId=<Access Key ID> &Signature=<Signature>