Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用数据库安全组 (EC2-Classic 平台)

默认情况下,数据库实例的网络访问处于关闭状态。您可以在安全组 中指定规则,允许从 IP 地址范围、端口或 EC2 安全组进行访问。配置传入规则后,与该安全组关联的所有数据库实例将应用这些规则。您最多可以在一个安全组中指定 20 个规则。

Amazon Relational Database Service 支持两种不同的安全组。您选择哪种安全组取决于您在哪个 Amazon RDS 平台上:

  • VPC 安全组 - 适用于 EC2-VPC 平台。

  • 数据库安全组 - 适用于 EC2-Classic 平台。

如果满足以下任一条件,您最可能位于 EC2-VPC 平台上 (且必须使用 VPC 安全组):

  • 如果您是新 Amazon RDS 客户。

  • 如果您之前从未创建过数据库实例。

  • 如果您要在以前未使用过的区域中创建数据库实例。

否则,如果您在 EC2-Classic 平台上,您将使用数据库安全组来管理对 Amazon RDS 数据库实例的访问。

注意

要确定您所在的是哪个平台,请参阅确定您使用的是 EC2-VPC 还是 EC2-Classic 平台

如果您在 EC2-VPC 平台上,则必须使用 VPC 安全组而不是数据库安全组。

创建数据库安全组

若要创建数据库安全组,您必须提供名称和描述。

AWS 管理控制台

创建数据库安全组

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 单击窗口左侧导航窗格中的 Security Groups

  3. 单击 Create DB Security Group

  4. NameDescription 文本框中,键入新数据库安全组的名称和描述。请注意,安全组名称不包含空格,且不能以数字开头。

  5. 单击 Yes, Create。将创建数据库安全组。请注意,默认情况下,新创建的数据库安全组不会提供数据库实例访问。您必须指定一个拥有数据库实例访问权限的 IP 地址范围或者 Amazon EC2 安全组。要指定数据库安全组的 IP 地址或者 Amazon EC2 安全组,请参阅 从 IP 范围向数据库安全组授予网络访问权限

CLI

要创建数据库安全组,请使用 AWS CLI 命令 create-db-security-group

针对 Linux、OS X 或 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"

请注意,默认情况下,新创建的数据库安全组不会提供数据库实例访问。您必须指定一个拥有数据库实例访问权限的 IP 地址范围或者 Amazon EC2 安全组。要指定数据库安全组的 IP 地址或者 Amazon EC2 安全组,请参阅 从 IP 范围向数据库安全组授予网络访问权限

API

要创建数据库安全组,请调用带下列参数的 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=<AWS Access Key ID> &Signature=<Signature>

请注意,默认情况下,新创建的数据库安全组不会提供数据库实例访问。您必须指定一个拥有数据库实例访问权限的 IP 地址范围或者 Amazon EC2 安全组。要指定数据库安全组的 IP 地址或者 Amazon EC2 安全组,请参阅 从 IP 范围向数据库安全组授予网络访问权限

列出可用的数据库安全组

您可以列出为 AWS 账户创建了哪些数据库安全组。

AWS 管理控制台

列出 AWS 账户的所有可用数据库安全组

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 单击窗口左侧导航窗格中的 Security Groups

    可用的数据库安全组会显示在 DB Security Groups 列表中。

CLI

要列出 AWS 账户的所有可用数据库安全组,请使用不带参数的 AWS CLI 命令 describe-db-security-groups

aws rds describe-db-security-groups

API

要列出 AWS 账户的所有可用数据库安全组,请调用不带参数的 DescribeDBSecurityGroups

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

查看数据库安全组

您可以查看有关数据库安全组的详细信息,了解已授权哪些 IP 范围。

AWS 管理控制台

要查看特定数据库安全组的属性,请执行以下操作

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 单击窗口左侧导航窗格中的 Security Groups

  3. 选择要查看的数据库安全组的详细信息图标。随后将显示该数据库安全组的详细信息。

CLI

要查看特定数据库安全组的属性,请使用 AWS CLI describe-db-security-groups。指定要查看的数据库安全组。

针对 Linux、OS X 或 Unix:

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

对于 Windows:

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

API

要查看特定数据库安全组的属性,请调用带下列参数的 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=<AWS Access Key ID> &Signature=<Signature>

从 IP 范围向数据库安全组授予网络访问权限

默认情况下,数据库实例的网络访问处于关闭状态。如果希望访问不在 VPC 中的数据库实例,必须设置数据库安全组的访问规则,以便允许从特定 EC2 安全组或者 CIDR IP 范围进行访问。然后,您就必须将数据库实例与该数据库安全组关联起来。这个过程称为进入。一旦给数据库安全组配置了进入规则,该规则同样也会应用到与该数据库安全组关联的所有数据库实例。

警告

如果您打算访问防火墙后的数据库实例,以便确定您应该使用的 IP 地址,请联系您的网络管理员。

在下例中,您将用 CIDR IP 范围的进入规则配置数据库安全组。

AWS 管理控制台

要配置一个数据库安全组,其中具有 CIDR IP 范围的传入规则,请执行以下操作

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在控制台窗口左侧的导航窗格中,选择 Security Groups

  3. 选择要授权的数据库安全组的详细信息图标。

  4. 在安全组的详细信息页中,从 Connection Type 下拉列表中选择 CIDR/IP,在 CIDR 文本框中键入要添加到此数据库安全组的入口规则的 CIDR 范围,然后单击 Authorize

    提示

    AWS 管理控制台会根据 CIDR 文本字段下面的连接显示 CIDR IP 地址。如果您没有通过防火墙访问数据库实例,那么,这就是可供您使用的 CIDR IP。

  5. 进入规则的状态将是 Authorizing,且会持续到新的进入规则应用到与您修改的数据库安全组关联的所有数据库实例。在成功应用了进入规则后,状态将变更为 authorized

CLI

要使用 CIDR IP 范围的进入规则配置数据库安全组,请使用 AWS CLI 命令 authorize-db-security-group-ingress

针对 Linux、OS X 或 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

API

要使用 CIDR IP 范围的进入规则配置数据库安全组,请调用带下列参数的 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=<AWS Access Key ID> &Signature=<Signature>

从 Amazon EC2 实例向数据库实例授予网络访问权限

如果要从 Amazon EC2 实例访问数据库实例,则必须先确定 EC2 实例和数据库实例是否在 VPC 中。如果使用的是默认 VPC,则可分配在创建或修改 EC2 实例将访问的数据库实例时用于 EC2 实例的同一 EC2 或 VPC 安全组。

如果数据库实例和 EC2 实例不在 VPC 中,则必须为数据库实例的安全组配置传入规则,该规则允许来自 Amazon EC2 实例的流量。为此,可将 EC2 实例的 Amazon EC2 安全组添加到数据库实例的数据库安全组。在此示例中,您将向数据库安全组添加适用于 Amazon EC2 安全组的进入规则。

重要

  • 向数据库安全组添加用于 Amazon EC2 安全组的进入规则,只会向与该 Amazon EC2 安全组关联的 Amazon EC2 实例授予访问数据库实例的权限。

  • 对于数据库实例以外的其他 AWS 区域中的 Amazon EC2 安全组,您无法向其授权。您可以授权 IP 范围,或在引用另一地区中的 IP 地址的同一地区指定 Amazon EC2 安全组。如果您指定 IP 范围,则建议使用您的 Amazon EC2 实例的私有 IP 地址,这样,从您的 Amazon EC2 实例到 Amazon RDS 数据库实例可以实现更直接的网络路由,且不会因在 Amazon 网络外部发送的数据而产生网络费用。

AWS 管理控制台

向数据库安全组添加 EC2 安全组,请执行以下操作

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在控制台窗口左侧的导航窗格中,选择 Security Groups

  3. 选择要授予访问权限的数据库安全组的详细信息图标。

  4. 在安全组的详细信息页中,从 Connection Type 下拉列表中选择 EC2 Security Group,然后选择您要使用的 Amazon EC2 安全组。然后单击 Authorize

  5. 进入规则的状态将是 Authorizing,且会持续到新的进入规则应用到与您修改的数据库安全组关联的所有数据库实例。在成功应用了进入规则后,状态将变更为 authorized

CLI

要授予对 Amazon EC2 安全组的访问权限,请使用 AWS CLI 命令 authorize-db-security-group-ingress

针对 Linux、OS X 或 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

API

要授予对 Amazon EC2 安全组的网络访问权限,请调用带下列参数的 Amazon RDS API 函数 http://docs.amazonaws.cn/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=<AWS Access Key ID> &Signature=<Signature>

撤消从 IP 范围到数据库实例的网络访问权限

您可以通过撤消相关的 CIDR IP 进入规则,轻松地撤消从 CIDR IP 范围到属于某数据库安全组的数据库实例的网络访问权限。

在此示例中,您撤消了一个数据库安全组上的 CIDR IP 进入规则。

AWS 管理控制台

撤消数据库安全组上的 CIDR IP 范围进入规则

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在控制台窗口左侧的导航窗格中,选择 Security Groups

  3. 选择要撤销的传入规则所属的数据库安全组的详细信息图标。

  4. 在安全组的详细信息页中,选择并单击要撤消的入口规则旁的删除

  5. 进入规则的状态将是 Revoking,直到将该进入规则从所有与您修改的数据库安全组关联的数据库实例中移除。在成功删除进入规则后,将从数据库安全组中将它移除。

CLI

要撤消数据库安全组上的 CIDR IP 范围的进入规则,请使用 AWS CLI 命令 revoke-db-security-group-ingress

针对 Linux、OS X 或 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

API

要撤消数据库安全组上的 CIDR IP 范围的进入规则,请调用带下列参数的 Amazon RDS API 函数 http://docs.amazonaws.cn/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=<AWS Access Key ID> &Signature=<Signature>

相关主题