Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Amazon Aurora MySQL 实现高安全性

Amazon Aurora MySQL 的安全性在三个级别上进行管理:

  • 要控制可对 Aurora MySQL 数据库集群和数据库实例执行 Amazon RDS 托管操作的人员,请使用 AWS Identity and Access Management (IAM)。使用 IAM 凭证连接到 AWS 时,您的 IAM 账户必须具有授予执行 Amazon RDS 管理操作所需的权限的 IAM 策略。有关更多信息,请参阅身份验证和访问控制

    如果要使用 IAM 账户访问 Amazon RDS 控制台,必须先使用您的 IAM 账户登录到 AWS 管理控制台。然后,您转到 Amazon RDS 控制台 (https://console.amazonaws.cn/rds)。

  • Aurora MySQL 数据库集群必须在 Amazon Virtual Private Cloud (VPC) 中创建。要控制哪些设备和 Amazon EC2 实例能够建立与 VPC 中 Aurora MySQL 数据库集群的数据库实例的终端节点和端口的连接,请使用 VPC 安全组。可使用安全套接字层 (SSL) 建立这些终端节点和端口连接。此外,公司的防火墙规则也可以控制公司中运行的哪些设备可以建立与数据库实例的连接。有关 VPC 的更多信息,请参阅Amazon Virtual Private Cloud (VPC) 和 Amazon RDS

    支持的 VPC 租赁取决于 Aurora MySQL 数据库集群使用的实例类。对于 default VPC 租赁,VPC 在共享硬件上运行。对于 dedicated VPC 租赁,VPC 在专用的硬件实例上运行。Aurora MySQL 支持基于实例类的以下 VPC 租赁:

    • db.r3 实例类支持 defaultdedicated VPC 租赁。

    • db.r4 实例类仅支持 default VPC 租赁。

    • db.t2 实例类仅支持 default VPC 租赁。

    有关实例类的更多信息,请参阅选择数据库实例类。有关 defaultdedicated VPC 租赁的更多信息,请参阅 Amazon Elastic Compute Cloud 用户指南 中的专用实例

  • 要对 Amazon Aurora MySQL 数据库集群的登录信息和权限进行身份验证,可单独或组合采用以下各种方式:

    • 您可采用与独立 MySQL 实例相同的方式。

      CREATE USERRENAME USERGRANTREVOKESET PASSWORD 等命令的作用与它们在本地数据库中的作用相同,就像直接修改数据库架构表。有关更多信息,请参阅 MySQL 文档中的 MySQL 用户账户管理

    • 您还可以使用 IAM 数据库身份验证。

      如果采用 IAM 数据库身份验证方式,可使用 IAM 用户或 IAM 角色以及身份验证令牌对您的数据库集群进行身份验证。身份验证令牌是使用签名版本 4 签名流程生成的唯一值。通过使用 IAM 数据库身份验证,您可以使用相同的凭证来控制对 AWS 资源和数据库的访问。有关更多信息,请参阅 的 IAM 数据库身份验证

Amazon Aurora MySQL 中的主用户权限

当您创建 Amazon Aurora MySQL 数据库实例时,主用户有以下默认权限:

  • ALTER

  • ALTER ROUTINE

  • CREATE

  • CREATE ROUTINE

  • CREATE TEMPORARY TABLES

  • CREATE USER

  • CREATE VIEW

  • DELETE

  • DROP

  • EVENT

  • EXECUTE

  • GRANT OPTION

  • INDEX

  • INSERT

  • LOAD FROM S3

  • LOCK TABLES

  • PROCESS

  • REFERENCES

  • RELOAD

  • REPLICATION CLIENT

  • REPLICATION SLAVE

  • SELECT

  • SHOW DATABASES

  • SHOW VIEW

  • TRIGGER

  • UPDATE

要为每个数据库集群提供管理服务,需要在创建数据库集群时创建 rdsadmin 用户。如果试图删掉、重命名、修改 rdsadmin 账户的密码,或者修改该账户的权限,会导致出错。

对于 Aurora MySQL 数据库集群管理,已限制标准 killkill_query 命令。应使用 Amazon RDS 命令 rds_killrds_kill_query 以终止 Aurora MySQL 数据库实例上的用户会话或查询。

注意

中国 (宁夏) 区域不支持数据库实例和快照加密。

将 SSL 与 Aurora MySQL 数据库集群配合使用

Amazon Aurora MySQL 数据库集群通过使用与 Amazon RDS MySQL 数据库实例相同的过程和公有密钥的应用程序支持安全套接字层 (SSL) 连接。

在 Amazon RDS 预置数据库实例时,Amazon RDS 创建 SSL 证书,并将该证书安装在数据库实例上。这些证书由证书颁发机构签署。SSL 证书会将数据库实例终端节点作为 SSL 证书的公用名 (CN) 包含在内以防止欺诈攻击。因此,只有在您的客户端支持主题替代名称 (SAN) 时,您才能使用数据库集群终端节点来连接使用 SSL 的数据库集群。否则,您必须使用该主实例的终端节点。

Aurora MySQL 5.6 支持传输层安全性 (TLS) 1.0 版。Aurora MySQL 5.7 支持 TLS 1.0、1.1 和 1.2 版。

我们建议将 MariaDB Connector/J 客户端作为使用 SSL 支持 SAN 的客户端。有关更多信息,请参阅 MariaDB Connector/J 下载页面。

公有密钥存储于 https://s3.cn-north-1.amazonaws.com.cn/rds-downloads/rds-combined-ca-cn-bundle.pem

要使用默认的 mysql 客户端对连接加密,需用 --ssl-ca parameter 启动 mysql 客户端以便引用公有密钥,例如:

对于 MySQL 5.7 和更高版本:

mysql -h myinstance.c9akciq32.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]rds-cn-north-1-ca-certificate.pem --ssl-mode=VERIFY_IDENTITY

对于 MySQL 5.6 及更低版本:

mysql -h myinstance.c9akciq32.rds-cn-north-1.amazonaws.com --ssl-ca=[full path]rds-cn-north-1-ca-certificate.pem --ssl-verify-server-cert

您可以要求特定用户账户的 SSL 连接。例如,可以根据您的 MySQL 版本,使用以下语句之一来要求用户账户 encrypted_user 的 SSL 连接。

对于 MySQL 5.7 和更高版本:

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

对于 MySQL 5.6 及更低版本:

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

注意

有关与 MySQL 的 SSL 连接的更多信息,请参阅 MySQL 文档