为 Amazon RDS Custom for SQL Server 设置环境 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 Amazon RDS Custom for SQL Server 设置环境

在为 Amazon RDS Custom for SQL Server 数据库实例创建和管理数据库实例之前,请确保执行以下任务。

设置 RDS Custom for SQL Server 的先决条件

在创建 RDS Custom for SQL Server 数据库实例之前,请确保您的环境符合本主题中描述的要求。作为此设置过程的一部分,请务必配置以下先决条件:

  • 配置指定的 Amazon Identity and Access Management(IAM)用户和角色。

    它们可用于创建 RDS Custom 数据库实例,或者在创建请求中作为参数传递。

  • 确认没有任何限制账户级别权限的服务控制策略(SCP)。

    如果您使用的账户属于 Amazon 组织,则该账户可能具有限制账户级别权限的服务控制策略(SCP)。确保 SCP 不会限制对于您使用以下过程创建的用户和角色的权限。

    有关 SCP 的更多信息,请参阅《Amazon Organizations 用户指南》中的服务控制策略 (SCP)。使用 Amazon CLI 命令 describe-organization 检查您的账户是否属于 Amazon 组织。

    有关 Amazon Organizations 的更多信息,请参阅《Amazon Organizations 用户指南》中的什么是 Amazon Organizations

注意

有关如何设置先决条件和启动 Amazon RDS Custom for SQL Server 的分步教程,请参阅博客文章通过 CloudFormation 模板开始使用 Amazon RDS Custom for SQL Server(网络设置)

对于每项任务,您可以找到以下用于介绍特定于该任务的要求和限制的说明。例如,在创建 RDS Custom for SQL Server 数据库实例时,请使用 RDS Custom for SQL Server 的数据库实例类支持 中列出的其中一个 SQL Server 实例。

有关 RDS Custom for SQL Server 的一般要求,请参阅 RDS Custom for SQL Server 的一般要求

下载并安装 Amazon CLI

Amazon 为您提供了命令行界面以使用 RDS Custom 功能。您可以使用 Amazon CLI 的版本 1 或版本 2。

有关下载和安装 Amazon CLI 的信息,请参阅安装或更新 Amazon CLI 的最新版本

如果满足以下任一条件,请跳过此步骤:

  • 您计划仅从 Amazon Web Services Management Console访问 RDS Custom。

  • 您已为 Amazon RDS 或其他 RDS Custom 数据库引擎下载了 Amazon CLI。

为您的 IAM 主体授予所需的权限

您使用 IAM 角色或 IAM 用户(称为 IAM 主体),通过使用控制台或 CLI 创建 RDS Custom for SQL Server 数据库实例。要成功创建数据库实例,此 IAM 主体必须具有以下任一策略:

  • AdministratorAccess 策略

  • 具有以下其他权限的 AmazonRDSFullAccess 策略:

    iam:SimulatePrincipalPolicy cloudtrail:CreateTrail cloudtrail:StartLogging s3:CreateBucket s3:PutBucketPolicy s3:PutBucketObjectLockConfiguration s3:PutBucketVersioning kms:CreateGrant kms:DescribeKey

    有关 kms:CreateGrant 权限的更多信息,请参阅 Amazon KMS key 管理

以下示例 JSON 策略授予所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ValidateIamRole", "Effect": "Allow", "Action": "iam:SimulatePrincipalPolicy", "Resource": "*" }, { "Sid": "CreateCloudTrail", "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:StartLogging" ], "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*" }, { "Sid": "CreateS3Bucket", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketVersioning" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*" }, { "Sid": "CreateKmsGrant", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

此外,IAM 主体需要对 IAM 角色具有 iam:PassRole 权限。必须将其附加到在请求的 custom-iam-instance-profile 参数中传递的实例配置文件,以创建 RDS Custom 数据库实例。实例配置文件及其附加的角色稍后将在配置网络、实例配置文件和加密中创建。

确保之前列出的权限不受服务控制策略 (SCP)、权限边界或与 IAM 主体关联的会话策略的限制。

配置网络、实例配置文件和加密

您可以使用以下任一过程来配置 IAM 实例配置文件角色、虚拟私有云 (VPC) 和 Amazon KMS 对称加密密钥:

如果您的账户属于某个 Amazon 组织,请确保实例配置文件角色所需的权限不受服务控制策略(SCP)限制。

以下联网配置设计为在与不公开访问的数据库实例配合使用时效果最佳。也就是说,您无法从 VPC 外部直接连接到数据库实例。

使用 Amazon CloudFormation 进行配置

为了简化设置,您可以使用 Amazon CloudFormation 模板文件创建 CloudFormation 堆栈。要了解如何创建堆栈,请参阅《Amazon CloudFormation 用户指南》中的在 Amazon CloudFormation 控制台上创建堆栈

有关如何使用 Amazon CloudFormation 模板启动 Amazon RDS Custom for SQL Server 的教程,请参阅 Amazon 数据库博客 中的通过 Amazon CloudFormation 模板开始使用 Amazon RDS Custom for SQL Server

CloudFormation 创建的资源

成功创建 CloudFormation 堆栈会在您的 Amazon Web Services 账户中创建以下资源:

  • 对称加密 KMS 密钥,用于加密 RDS Custom 管理的数据。

  • 用于附加到 RDS Custom 实例的实例配置文件和关联的 IAM 角色。

  • 将 CIDR 范围指定为 CloudFormation 参数的 VPC。默认值为 10.0.0.0/16

  • 在参数中指定了 CIDR 范围的两个私有子网,以及 Amazon Web Services 区域中的两个不同可用区。子网 CIDR 的原定设置值为 10.0.128.0/2010.0.144.0/20

  • 为 VPC 设置了 DHCP 选项,域名解析为 Amazon 域名系统 (DNS) 服务器。

  • 与两个私有子网关联但无法访问互联网的路由表。

  • 要与两个私有子网关联的网络访问控制列表 (ACL),并且访问限制为 HTTPS。

  • 要与 RDS Custom 实例关联的 VPC 安全组。对于指向 RDS Custom 所需 Amazon Web Service端点的出站 HTTPS,访问受到限制。

  • 对于为 RDS Custom 所需的 Amazon Web Service端点创建的 VPC 端点,要与它们关联的 VPC 安全组。

  • 在其中创建 RDS Custom 实例的数据库子网组。

  • 对应于 RDS Custom 所需的每个 Amazon Web Service端点的 VPC 端点。

使用以下过程为 RDS Custom for SQL Server 创建 CloudFormation 堆栈。

下载模板文件

下载模板文件
  1. 打开链接 custom-sqlserver-onboard.zip 的上下文(右键单击)菜单,然后选择 Save Link As(将链接另存为)。

  2. 将文件保存并提取到您的计算机中。

使用 CloudFormation 配置资源

使用 CloudFormation 配置资源
  1. 通过以下网址打开 CloudFormation 控制台:https://console.aws.amazon.com/cloudformation

  2. 要启动 Create Stack(创建堆栈)向导,请选择 Create Stack(创建堆栈)。

    此时会显示 Create stack(创建快照)。

  3. 对于 Prerequisite - Prepare template(先决条件 - 准备模板),请选择 Template is ready(模板已就绪)。

  4. 对于 Select Template(选择模板),执行以下操作:

    1. 对于 Template source(模板来源),选择 Upload a template file(上载模板文件)。

    2. 对于选择文件,请导航到并选择正确的文件。

  5. 选择下一步

    此时将出现 Specify stack details(指定堆栈详细信息)页面。

  6. 对于堆栈名称,输入 rds-custom-sqlserver

  7. 对于 Parameters(参数),请执行以下操作:

    1. 要保留原定设置选项,请选择 Next(下一步)。

    2. 要更改选项,请为 VPC 及其两个子网选择适当的 CIDR 块范围,然后选择 Next(下一步)。

      在更改参数之前,请仔细阅读每个参数的说明。

  8. Configure stack options(配置堆栈选项) 页面上,请选择 Next(下一步)。

  9. Review rds-custom-sqlserver(查看 rds-custom-sqlserver)页面上,请执行以下操作:

    1. 对于 Capabilities(功能),请选中 I acknowledge that Amazon CloudFormation might create IAM resources with custom names(我确认 Amazon CloudFormation 可能使用自定义名称创建 IAM 资源)复选框。

    2. 选择创建堆栈

  10. (可选):您可以更新实例配置文件角色中的 SQS 权限。

    如果您只想部署单可用区数据库实例,则可以编辑 CloudFormation 模板文件以删除 SQS 权限。只有多可用区部署才需要 SQS 权限,这些权限允许 RDS Custom for SQL Server 调用 Amazon SQS 来执行特定操作。由于单可用区部署不需要这些权限,因此,您可以选择删除这些权限以遵循最低权限原则。

    如果您想配置多可用区部署,则无需删除 SQS 权限。

    注意

    如果您删除 SQS 权限,随后选择修改为多可用区部署,则多可用区创建将失败。在修改为多可用区部署之前,需要重新添加 SQS 权限。

    要对 CloudFormation 模板进行此项可选更改,请打开 CloudFormation 控制台(网址为 https://console.aws.amazon.com/cloudformation),然后通过删除以下几行来编辑模板文件:

    { "Sid": "SendMessageToSQSQueue", "Effect": "Allow", "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*" } ], "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } }

CloudFormation 创建 RDS Custom for SQL Server 所需的资源。如果堆栈创建失败,请通读 Events(事件)选项卡,以查看哪项资源创建失败及其状态原因。

对于将作为参数传递以创建 RDS Custom for SQL Server 数据库实例的所有资源,控制台中此 CloudFormation 堆栈的 Outputs(输出)选项卡应包含有关它们的信息。确保使用 CloudFormation 为 RDS Custom 数据库实例创建的 VPC 安全组和数据库子网组。原定设置情况下,RDS 会尝试附加原定设置 VPC 安全组,该安全组可能没有您所需的访问权限。

注意

当您删除 CloudFormation 堆栈时,该堆栈创建的所有资源都会被删除,但 KMS 密钥除外。KMS 密钥进入 pending-deletion 状态并且将在 30 天后删除。要保留 KMS 密钥,请在 30 天宽限期内执行 CancelKeyDeletion 操作。

如果您使用了 CloudFormation 来创建资源,则可以跳过手动配置

手动配置

如果您选择手动配置资源,请执行以下任务。

注意

为了简化设置,您可以使用 Amazon CloudFormation 模板文件来创建 CloudFormation 堆栈,而不是手动配置。有关更多信息,请参阅使用 Amazon CloudFormation 进行配置

请确保您有对称的加密 Amazon KMS 密钥

RDS Custom 需要对称的加密 Amazon KMS key。创建 RDS Custom for SQL Server 数据库实例时,确保提供 KMS 密钥标识符。有关更多信息,请参阅为 Amazon RDS Custom for SQL Server 创建并连接到数据库实例

您有以下选项:

  • 如果您的 Amazon Web Services 账户中有现有的客户自主管理型 KMS 密钥,则可以将其与 RDS Custom 一起使用。无需进一步操作。

  • 如果您已经为不同的 RDS Custom 引擎创建了客户自主管理型对称加密 KMS 密钥,可以重用相同的 KMS 密钥。无需进一步操作。

  • 如果您的账户中没有现有的客户自主管理型对称加密 KMS 密钥,请按照《Amazon Key Management Service 开发人员指南》创建密钥中的说明创建一个 KMS 密钥。

  • 如果您正在创建 CEV 或 RDS Custom 数据库实例,而您的 KMS 密钥位于其他 Amazon Web Services 账户 中,请务必使用 Amazon CLI。您不能将 Amazon 控制台与跨账户 KMS 密钥一起使用。

重要

RDS Custom 不支持 Amazon 托管式 KMS 密钥。

确保您的对称加密密钥为 IAM 实例配置文件中的 kms:Decrypt(IAM)角色授予对 kms:GenerateDataKey 和 Amazon Identity and Access Management 操作的访问权限。如果您的账户中有一个新的对称加密密钥,不需要进行任何更改。否则,请确保对称加密密钥的策略授予对这些操作的访问权限。

有关更多信息,请参阅步骤 4:为 RDS Custom for Oracle 配置 IAM

手动创建您的 IAM 角色和实例配置文件

要使用 RDS Custom for SQL Server,请按如下所述创建 IAM 实例配置文件和 IAM 角色。

为 RDS Custom for SQL Server 创建 IAM 实例配置文件和 IAM 角色
  1. 创建名为 AWSRDSCustomSQLServerInstanceRole 的 IAM 角色,并带有信任策略,以便 Amazon EC2 可代入此角色。

  2. AWSRDSCustomSQLServerInstanceRole 添加访问策略。

  3. 为名为 AWSRDSCustomSQLServerInstanceProfile 的 RDS Custom for SQL Server 创建 IAM 实例配置文件。

  4. AWSRDSCustomSQLServerInstanceRole 添加到实例配置文件。

创建 AWSRDSCustomSQLServerInstanceRole IAM 角色

以下示例将创建 AWSRDSCustomSQLServerInstanceRole 角色。信任策略将允许 Amazon EC2 代入该角色。

aws iam create-role \ --role-name AWSRDSCustomSQLServerInstanceRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }'
将访问策略添加到 AWSRDSCustomSQLServerInstanceRole

在将内联策略嵌入角色中时,内联策略将用作角色的访问(权限)策略的一部分。您将创建 AWSRDSCustomSQLServerIamRolePolicy 策略,以让 Amazon EC2 获取和接收消息,以及执行各种操作。

确保访问策略中的权限不受 SCP 或与实例配置文件角色关联的权限边境所限制。

以下示例创建 AWSRDSCustomSQLServerIamRolePolicy 名为的访问策略,然后将其添加到 AWSRDSCustomSQLServerInstanceRole 角色。此示例假定已设置了 '$REGION'$ACCOUNT_ID'$CUSTOMER_KMS_KEY_ID' 变量。'$CUSTOMER_KMS_KEY_ID' 是您在请确保您有对称的加密 Amazon KMS 密钥中定义的 KMS 密钥的 ID,而不是 Amazon 资源名称 (ARN)。

aws iam put-role-policy \ --role-name AWSRDSCustomSQLServerInstanceRole \ --policy-name AWSRDSCustomSQLServerIamRolePolicy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ssmAgent1", "Effect": "Allow", "Action": [ "ssm:GetDeployablePatchSnapshotForInstance", "ssm:ListAssociations", "ssm:PutInventory", "ssm:PutConfigurePackageResult", "ssm:UpdateInstanceInformation", "ssm:GetManifest" ], "Resource": "*" }, { "Sid": "ssmAgent2", "Effect": "Allow", "Action": [ "ssm:ListInstanceAssociations", "ssm:PutComplianceItems", "ssm:UpdateAssociationStatus", "ssm:DescribeAssociation", "ssm:UpdateInstanceAssociationStatus" ], "Resource": "arn:aws:ec2:'$REGION':'$ACCOUNT_ID':instance/*", "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } }, { "Sid": "ssmAgent3", "Effect": "Allow", "Action": [ "ssm:UpdateAssociationStatus", "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:DescribeDocument" ], "Resource": "arn:aws:ssm:*:*:document/*" }, { "Sid": "ssmAgent4", "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Sid": "ssmAgent5", "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint", "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": "*" }, { "Sid": "ssmAgent6", "Effect": "Allow", "Action": [ "ssm:GetParameters", "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/*" }, { "Sid": "ssmAgent7", "Effect": "Allow", "Action": [ "ssm:UpdateInstanceAssociationStatus", "ssm:DescribeAssociation" ], "Resource": "arn:aws:ssm:*:*:association/*" }, { "Sid": "eccSnapshot1", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": [ "arn:aws:ec2:'$REGION':'$ACCOUNT_ID':volume/*" ], "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } }, { "Sid": "eccSnapshot2", "Effect": "Allow", "Action": "ec2:CreateSnapshot", "Resource": [ "arn:aws:ec2:'$REGION'::snapshot/*" ], "Condition": { "StringLike": { "aws:RequestTag/AWSRDSCustom": "custom-sqlserver" } } }, { "Sid": "eccCreateTag", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/AWSRDSCustom": "custom-sqlserver", "ec2:CreateAction": [ "CreateSnapshot" ] } } }, { "Sid": "s3BucketAccess", "Effect": "Allow", "Action": [ "s3:putObject", "s3:getObject", "s3:getObjectVersion", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::do-not-delete-rds-custom-*/*" ] }, { "Sid": "customerKMSEncryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:'$REGION':'$ACCOUNT_ID':key/'$CUSTOMER_KMS_KEY_ID'" ] }, { "Sid": "readSecretsFromCP", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:'$REGION':'$ACCOUNT_ID':secret:do-not-delete-rds-custom-*" ], "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } }, { "Sid": "publishCWMetrics", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "rdscustom/rds-custom-sqlserver-agent" } } }, { "Sid": "putEventsToEventBus", "Effect": "Allow", "Action": "events:PutEvents", "Resource": "arn:aws:events:'$REGION':'$ACCOUNT_ID':event-bus/default" }, { "Sid": "cwlOperations1", "Effect": "Allow", "Action": [ "logs:PutRetentionPolicy", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:rds-custom-instance-*" }, { "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } }, "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": [ "arn:aws:sqs:'$REGION':'$ACCOUNT_ID':do-not-delete-rds-custom-*" ], "Effect": "Allow", "Sid": "SendMessageToSQSQueue" } ] }'
创建您的 RDS Custom for SQL Server 实例配置文件

请按如下方式创建您的实例配置文件,将其命名为 AWSRDSCustomSQLServerInstanceProfile

aws iam create-instance-profile \ --instance-profile-name AWSRDSCustomSQLServerInstanceProfile
请将 AWSRDSCustomSQLServerInstanceRole 添加到您的 RDS Custom for SQL Server 实例配置文件中

请将 AWSRDSCustomInstanceRoleForRdsCustomInstance 角色添加到 AWSRDSCustomSQLServerInstanceProfile 配置文件。

aws iam add-role-to-instance-profile \ --instance-profile-name AWSRDSCustomSQLServerInstanceProfile \ --role-name AWSRDSCustomSQLServerInstanceRole

手动配置您的 VPC

就像 Amazon EC2 实例或 Amazon RDS 实例一样,您的 RDS Custom 数据库实例位于基于 Amazon VPC 服务的虚拟私有云 (VPC) 中。您将提供并配置自己的 VPC。因此,您将能够完全控制实例联网设置。

RDS Custom 将通信从数据库实例发送到其他 Amazon Web Services。确保可以从您创建 RDS Custom for Oracle 数据库实例所在的子网访问以下服务:

  • Amazon CloudWatch

  • Amazon CloudWatch Logs

  • Amazon CloudWatch Events

  • Amazon EC2

  • Amazon EventBridge

  • Amazon S3

  • Amazon Secrets Manager

  • Amazon Systems Manager

如果对前面 Amazon Web Services的访问权限当前不存在,请配置以下 VPC 端点:

  • com.amazonaws.region.ec2messages

  • com.amazonaws.region.events

  • com.amazonaws.region.logs

  • com.amazonaws.region.monitoring

  • com.amazonaws.region.s3

  • com.amazonaws.region.secretsmanager

  • com.amazonaws.region.ssmmessages

如果 RDS Custom 无法与必需的服务通信,该服务会发布以下事件:

Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent Amazon services.

为避免 incompatible-network 错误,请确保您的 RDS Custom 数据库实例与 Amazon Web Services之间通信所涉及的 VPC 组件满足以下要求:

  • 数据库实例可以在端口 443 上建立到其他 Amazon Web Services的出站连接。

  • VPC 允许对源自 RDS Custom 数据库实例的请求进行传入响应。

  • RDS Custom 可以正确解析每个 Amazon Web Service的端点的域名。

RDS Custom 依赖 Amazon Systems Manager 连接来实现其自动化。有关如何配置 VPC 端点的信息,请参阅为 Systems Manager 创建 VPC 端点。有关每个区域中端点的列表,请参阅亚马逊云科技一般参考中的 Amazon Systems Manager 端点和配额

如果您已经为其他 RDS Custom 数据库引擎配置了 VPC,可以重用该 VPC 并跳过此过程。

配置您的 VPC 安全组

安全组充当 VPC 实例的虚拟防火墙,以控制入站和出站流量。RDS Custom 数据库实例具有原定设置安全组,可用于保护实例。确保您的安全组允许 RDS Custom 和其他 Amazon Web Services之间的流量。

要为 RDS Custom 配置安全组
  1. 登录到Amazon Web Services Management Console并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc

  2. 允许 RDS Custom 使用原定设置安全组,或创建您自己的安全组。

    有关详细说明,请参阅 通过创建安全组提供对 VPC 中的数据库实例的访问

  3. 确保您的安全组允许在端口 443 上建立出站连接。RDS Custom 需要此端口来与依赖项 Amazon Web Services进行通信。

  4. 如果您有私有 VPC 并且使用 VPC 端点,请确保与数据库实例关联的安全组允许在端口 443 上建立到 VPC 端点的出站连接。还要确保与 VPC 端点关联的安全组允许在端口 443 上建立来自数据库实例的入站连接。

    如果不允许传入连接,则 RDS Custom 实例无法连接到 Amazon Systems Manager 和 Amazon EC2 终端节点。有关更多信息,请参阅《Amazon Systems Manager 用户指南》中的创建虚拟私有云端点

有关安全组的更多信息,请参阅 Amazon VPC 开发人员指南中的您的 VPC 的安全组

为依赖项 Amazon Web Services配置端点

确保您的 VPC 允许建立到以下 Amazon Web Services(数据库实例与之通信)的出站流量:

  • Amazon CloudWatch

  • Amazon CloudWatch Logs

  • Amazon CloudWatch Events

  • Amazon EC2

  • Amazon EventBridge

  • Amazon S3

  • Amazon Secrets Manager

  • Amazon Systems Manager

我们建议您按照以下说明为 VPC 中的每项服务添加端点。但是,您也可以使用任何其他解决方案,只要使您的 VPC 能够与 Amazon 服务终端节点通信即可。例如,您可以使用网络地址转换 (NAT) 或 Amazon Direct Connect。

为与 RDS Custom 配合使用的 Amazon Web Services配置端点
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航栏中,使用区域选择器来选择 Amazon Web Services 区域。

  3. 在导航窗格中,选择端点。在主窗格中,选择创建终端节点

  4. 对于 Service category(服务类别),选择 Amazon Web Services

  5. 对于 Service Name(服务名称),请选择表中显示的端点。

  6. 对于 VPC,选择您的 VPC。

  7. 对于子网,请从每个可用区中选择一个要包括的子网。

    VPC 端点可以跨越多个可用区。Amazon 为您选择的每个子网中的 VPC 终端节点创建一个弹性网络接口。每个网络接口有一个域名系统 (DNS) 主机名和私有 IP 地址。

  8. 对于 Security group(安全组),请选择或创建一个安全组。

    您可以使用安全组来控制对您的端点的访问,就像您使用防火墙一样。有关安全组的更多信息,请参阅 Amazon VPC 用户指南 中的您的 VPC 的安全组

  9. 或者,您可以将策略附加到 VPC 端点。端点策略可以控制对您要连接到的 Amazon Web Service的访问权限。原定设置策略允许所有请求通过端点。如果您使用自定义策略,请确保策略中允许来自数据库实例的请求。

  10. 选择创建端点

下表说明了如何查找您的 VPC 用于出站通信所需的端点列表。

服务 端点格式 备注和链接

Amazon Systems Manager

采用以下端点格式:

  • ssm.region.amazonaws.com

  • ssmmessages.region.amazonaws.com

有关每个区域中端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Systems Manager 端点和限额

Amazon Secrets Manager

采用端点格式 secretsmanager.region.amazonaws.com

有关每个区域中端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Secrets Manager 端点和限额

Amazon CloudWatch

采用以下端点格式:

  • 对于 CloudWatch 指标,请使用 monitoring.region.amazonaws.com

  • 对于 CloudWatch Events,请使用 events.region.amazonaws.com

  • 对于 CloudWatch Logs,请使用 logs.region.amazonaws.com

有关每个区域中的端点列表,请参阅:

Amazon EC2

采用以下端点格式:

  • ec2.region.amazonaws.com

  • ec2messages.region.amazonaws.com

有关每个区域中端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Elastic Compute Cloud 端点和限额

Amazon S3

采用端点格式 s3.region.amazonaws.com

有关每个区域中端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Simple Storage Service 端点和限额

要了解 Amazon S3 的网关端点的更多信息,请参阅《Amazon VPC 开发人员指南》中的 Amazon S3 端点

要了解如何创建访问点,请参阅《Amazon VPC 开发人员指南》中的创建访问点

要了解如何为 Amazon S3 创建网关终端节点,请参阅网关 VPC 终端节点

配置实例元数据服务

请确保您的实例可以执行以下操作:

  • 可使用 Instance Metadata Service Version 2 (IMDSv2) 来访问实例元数据服务。

  • 允许通过端口 80 (HTTP) 到 IMDS 链接 IP 地址的出站通信。

  • http://169.254.169.254 IMDSv2 链接请求实例元数据。

有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的使用 IMDSv2