选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

将 Kerberos 身份验证与 AWS Database Migration Service

聚焦模式
将 Kerberos 身份验证与 AWS Database Migration Service - AWS 数据库迁移服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 DMS v3.5.3 开始,您可以将 Oracle 或SQL服务器源端点配置为使用 Kerberos 身份验证连接到数据库实例。 DMS支持 AWS Directory Service 微软 Active Directory 和 Kerberos 身份验证。有关对 Microsoft AWS Active Directory 服务的托管访问权限的更多信息,请参阅什么是 AWS Directory Service?

AWS DMS Kerberos 身份验证架构概述

下图简要概述了 AWS DMS Kerberos 身份验证工作流程。

Kerberos 身份验证架构

使用 Kerberos 身份验证的限制 AWSAWS DMS

将 Kerberos 身份验证与以下限制一起使用: AWS AWS DMS

  • DMS复制实例支持一个 Kerberos krb5.conf 文件和一个密钥缓存文件。

  • 你必须在票证到期前至少 30 分钟更新 Secrets Manager 中的 Kerberos 密钥缓存文件。

  • 启用 Kerberos 的DMS终端节点仅适用于启用了 Kerberos 的复制实例。DMS

先决条件

要开始,您必须从现有的 Active Directory 或经过 Kerberos 身份验证的主机上完成以下先决条件:

  • 与您的本地广告建立活动目录信任关系。有关更多信息,请参阅教程:在您的 AWS 托管 Microsoft AD 和自行管理的 Active Directory 域之间创建信任关系

  • 准备 Kerberos krb5.conf 配置文件的简化版本。包括有关领域、域管理服务器的位置以及主机名到 Kerberos 领域的映射的信息。您需要验证krb5.conf内容的格式是否为域名和域名采用了正确的混合大小写。例如:

    [libdefaults] dns_lookup_realm = true dns_lookup_kdc = true forwardable = true default_realm = MYDOMAIN.ORG [realms] MYDOMAIN.ORG = { kdc = mydomain.org admin_server = mydomain.org } [domain_realm] .mydomain.org = MYDOMAIN.ORG mydomain.org = MYDOMAIN.ORG
  • 准备一个 Kerberos 密钥缓存文件。该文件包含客户端主体信息的临时 Kerberos 凭证。该文件不存储客户端的密码。您的DMS任务使用此缓存票证信息无需密码即可获取其他凭证。在现有的 Active Directory 或 Kerberos 认证的主机上运行以下步骤以生成密钥缓存文件。

    • 创建一个 Kerberos 密钥表文件。你可以使用 k utilk tpass 实用程序生成密钥表文件。

      有关微软 ktpass 实用程序的更多信息,请参阅 Windows 服务器文档中的 ktpass

      有关 MIT kutil 实用程序的更多信息,请参阅 K MIT erber os 文档中的 kutil

    • 使用 kinit 实用程序从密钥表文件创建 Kerberos 密钥缓存文件。有关 kin it 实用程序的更多信息,请参阅 K MITerber os 文档中的 kinit

  • 使用参数将 Kerberos 密钥缓存文件存储在 Secrets Manager 中。SecretBinary当你将密钥缓存文件上传到 Secrets Manager 时,会对其进行DMS检索,然后大约每 30 分钟更新一次本地缓存文件。当本地密钥缓存文件超过预定义的过期时间戳时,会DMS优雅地停止任务。为避免正在进行的复制任务期间身份验证失败,请在票证到期前至少 30 分钟更新 Secrets Manager 中的密钥缓存文件。有关更多信息,请参阅 S ecrets Manager API 参考中的 creat esec ret。以下 AWS CLI 示例显示了如何在 Secrets Manager 中以二进制格式存储密钥缓存文件:

    aws secretsmanager create-secret —name keycache —secret-binary fileb://keycachefile
  • 向IAM角色授予从 Secrets Manager 获取密钥缓存文件的DescribeSecret权限。GetSecretValue确保该IAM角色包含dms-vpc-role信任策略。有关dms-vpc-role信任策略的更多信息,请参阅创建要与一起使用的IAM角色 AWS DMS

以下示例显示了具有 Secrets Manager GetSecretValueDescribeSecret权限的IAM角色策略。该<keycache_secretsmanager_arn>值是ARN您在上一步中创建的 Keycache Secrets Manager。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ <keycache_secretsmanager_arn> ] } ] }

在复制实例上启用 Kerberos 支持 AWS DMS

Kerberos 领域与 Windows 中的域相同。为了解析主域,Kerberos 依赖于域名服务 () DNS。当您设置dns-name-servers参数时,您的复制实例将使用您预定义的自定义DNS服务器集来解析 Kerberos 域域。解决 Kerberos 领域查询的另一种选择是在复制实例虚拟私有云上配置 Amazon Route 53()VPC。有关更多信息,请参阅 Route 53

使用在DMS复制实例上启用 Kerberos 支持 AWS Management Console

要使用控制台启用 Kerberos 支持,请在 “创建复制实例” 或 “修改复制实例” 页面的 Kerberos 身份验证部分输入以下信息:

  • krb5.conf文件中的内容

  • 包含密钥缓存文件的 Secrets Manager 密钥 ARN

  • 有权访问密钥管理器ARN并有权检索 keycache 文件的IAM角色的 ARN

使用在DMS复制实例上启用 Kerberos 支持 AWS CLI

以下 AWS CLI 示例调用创建了一个支持 Kerberos 的私有DMS复制实例。复制实例使用自定义DNS来解析 Kerberos 领域。有关更多信息,请参阅 create-replication-instance

aws dms create-replication-instance --replication-instance-identifier my-replication-instance --replication-instance-class dms.t2.micro --allocated-storage 50 --vpc-security-group-ids sg-12345678 --engine-version 3.5.4 --no-auto-minor-version-upgrade --kerberos-authentication-settings'{"KeyCacheSecretId":<secret-id>,"KeyCacheSecretIamArn":<secret-iam-role-arn>,"Krb5FileContents":<krb5.conf file contents>}' --dns-name-servers <custom dns server> --no-publicly-accessible

在源端点上启用 Kerberos 支持

在 DMS Oracle 或SQL服务器源端点上启用 Kerberos 身份验证之前,请确保您可以从客户机使用 Kerberos 协议向源数据库进行身份验证。您可以使用 AWS DMS 诊断AMI功能启动与复制EC2实例相同的 Amazon 实例,然后测试 kerberos VPC 身份验证。有关 AMI 的更多信息,请参阅 使用 AWS DMS 诊断支持 AMI

使用 AWS DMS 控制台

在 “终端数据库访问权限” 下,选择 Kerberos 身份验证

使用 AWS CLI

指定端点设置参数并将AuthenticationMethod选项设置为 kerberos。例如:

Oracle

aws dms create-endpoint --endpoint-identifier my-endpoint --endpoint-type source --engine-name oracle --username dmsuser@MYDOMAIN.ORG --server-name mydatabaseserver --port 1521 --database-name mydatabase --oracle-settings "{\"AuthenticationMethod\": \"kerberos\"}"

SQL服务器

aws dms create-endpoint --endpoint-identifier my-endpoint --endpoint-type source --engine-name sqlserver --username dmsuser@MYDOMAIN.ORG --server-name mydatabaseserver --port 1433 --database-name mydatabase --microsoft-sql-server-settings "{\"AuthenticationMethod\": \"kerberos\"}"

测试源端点

您必须针对启用了 Kerberos 的复制实例测试启用 Kerberos 的终端节点。如果您未正确配置复制实例或源端点进行 Kerberos 身份验证,则终端节点test-connection操作将失败,并可能返回与 Kerberos 相关的错误。有关更多信息,请参阅测试连接

下一主题:

限制

上一主题:

使用 SSL
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。