使用 Amazon RDS 部署 Drupal
教程
模块 3:配置 RDS 数据库
配置 RDS 数据库以允许访问特定实体
概览
到目前为止,您已创建 RDS 数据库和 EC2 实例。在此模块中,我们将配置 RDS 数据库以允许访问特定实体。
数据库安全方法
有几种方法可以保护您的数据库免遭未经授权的访问。您将在本模块中学习到其中两种方法。它们是:
- 网络安全性:通过拒绝来自未经授权的 IP 地址的流量,实现对数据库实例的访问限制。
- 密码验证和授权:通过要求用户名和密码来实现对数据库的访问限制。
以下步骤将引导您配置这两种方法。
所需时间
15 分钟
使用的服务
实施
在上一个模块中,您创建了安全组规则,允许 HTTP 和 HTTPS 流量访问您的 Drupal EC2 实例。此处适用同样的原则。但是这一次您希望允许某些流量从 EC2 实例访问 RDS 数据库。
默认安全组设有一个规则,该规则允许来自默认安全组中其他实例的所有入站流量。但是,由于您的 Drupal EC2 实例不在该安全组中,因此它无权访问 RDS 数据库。
如果选择 MySQL 数据库引擎,请将类型属性更改为 MYSQL/Aurora;如果选择 PostgreSQL 数据库引擎,请将其更改为 PostgreSQL。更改类型,会将协议和端口范围更新为适当的值。
现在您的 EC2 实例可以访问 RDS 数据库,您将使用 AWS 会话管理器访问 EC2 实例并运行一些配置命令。
在 AWS 管理控制台中,转到 EC2 实例页面。您应该会看到自己为安装 Drupal 创建的 EC2 实例。选择实例,并从右上角的 “操作” 菜单中选择 “连接”。
第 3 步:创建数据库用户 (PostgreSQL)
您应会看到一个连接到您的 EC2 实例的活动会话管理器会话。接下来,您将连接到 PostgreSQL 数据库并为 Drupal 应用程序创建一个用户。
如果您选择 MySQL 作为数据库引擎,请跳至第 4 步,了解如何在 MySQL 中创建数据库用户。
首先,在终端中运行以下命令来安装 PostgreSQL 客户端以便与数据库进行交互。
sudo dnf install -y postgresql15
在终端中输入以下命令,为 PostgreSQL 主机设置环境变量。请确保将“<your-endpoint>”替换为您的 RDS 实例的主机名。
export PGHOST=<your-endpoint>
接下来,在终端中运行以下命令以连接到 PostgreSQL 数据库。将“<user>”替换为您在创建 RDS 数据库时配置的主用户名。
psql --user=<user> --password drupal
最后,为您的 Drupal 应用程序创建一个数据库用户,并授予其访问“drupal”数据库的权限。
在终端中运行以下命令:
CREATE USER drupaluser WITH ENCRYPTED PASSWORD 'drupalpass';
GRANT ALL PRIVILEGES ON DATABASE drupal TO drupaluser;
GRANT CREATE ON SCHEMA public TO drupaluser;
ALTER DATABASE "drupal" SET bytea_output = 'escape';
\q
请使用强度更高的密码来保护数据库,不要使用“drupalpass”这样的简单密码。
请记下您配置的用户名和密码,在下一个模块中设置 Drupal 安装时将需要这些信息。
在本模块中,您学习了如何为 RDS 数据库配置网络和密码安全性。现在,您的 EC2 实例可以通过网络访问 RDS 数据库。此外,您创建了一个数据库用户,供您的 Drupal 应用程序使用。
在下一个模块中,您将了解如何配置 EC2 实例以运行 Drupal 应用程序。
第 4 步:创建数据库用户 (MySQL)
您应会看到一个连接到您的 EC2 实例的活动会话管理器会话。接下来,您将连接到 MySQL 数据库并为 Drupal 应用程序创建一个用户。
如果您选择 PostgreSQL 作为数据库引擎,则可以跳过此步骤。您应该已在第 3 步为 PostgreSQL 数据库创建了一个用户。
首先,在终端中运行以下命令来安装 MySQL 客户端以便与数据库进行交互。
sudo dnf install -y mariadb105
在终端中输入以下命令,为 MySQL 主机设置环境变量。请确保将“<your-endpoint>”替换为您的 RDS 实例的主机名。
export MYSQL_HOST=<your-endpoint>
接下来,在终端中运行以下命令以连接到 MySQL 数据库。将“<user>”和“<password>”替换为您在创建 RDS 数据库时配置的主用户名和密码。
mysql --user=<user> --password drupal
最后,为您的 Drupal 应用程序创建一个数据库用户,并授予其访问“drupal”数据库的权限。
在终端中运行以下命令:
CREATE USER 'drupal' IDENTIFIED BY 'drupal-pass';
GRANT ALL PRIVILEGES ON drupal.* TO drupal;FLUSH PRIVILEGES;
Exit
请使用强度更高的密码来保护数据库,不要使用“drupal-pass”这样的简单密码。
请记下您配置的用户名和密码,在下一个模块中设置 Drupal 安装时将需要这些信息。
在本模块中,您学习了如何为 RDS 数据库配置网络和密码安全性。现在,您的 EC2 实例可以通过网络访问 RDS 数据库。此外,您创建了一个数据库用户,供您的 Drupal 应用程序使用。
在下一个模块中,您将了解如何配置 EC2 实例以运行 Drupal 应用程序。