跨账号
当数据库在一个账号、数据湖在另一个账号时,导出会 在源账号中 执行,并直接写入 Data Pump 的存储桶。原始数据不会传输两次,快照也无需共享或复制。
这带来一个很实际的好处:集群不需要使用自定义 KMS 密钥。用 RDS 默认密钥
(aws/rds)加密的快照同样可用——如果方案要求共享快照,这一点是做不到的。
源账号中会创建什么
Section titled “源账号中会创建什么”只创建导出所需的最少资源:
- 一个 RDS 事件订阅,用于在快照就绪时发出通知
- 两个最小权限的 IAM 角色:一个用于导出,一个用于事件
该账号中不会留存任何数据,Data Pump 也不会获得除导出快照之外的任何访问权限。
两个账号之间相互引用,因此安装分为三步。
1. 在 Data Pump 账号中
Section titled “1. 在 Data Pump 账号中”sh install-datapump.sh创建存储桶和导出密钥,并输出第 2 步所需的各个 ARN。
2. 在源账号中
Section titled “2. 在源账号中”使用托管该集群的账号的凭证执行:
VERSION=v1.0.0 \DATAPUMP_ACCOUNT=111122223333 \DATAPUMP_TOPIC_ARN=arn:...:datapump-rds-snapshot-export-to-s3-prd \DATAPUMP_BUCKET_ARN=arn:aws:s3:::datapump-datalake-prd \DATAPUMP_EXPORT_KMS_KEY_ARN=arn:aws:kms:...:key/... \SOURCE_CLUSTER_IDENTIFIER=meu-cluster \sh install-source-account.sh这四个 ARN 来自第 1 步的输出。
3. 回到 Data Pump 账号
Section titled “3. 回到 Data Pump 账号”sh source-accounts.sh add 444455556666授权第 2 步创建的角色写入存储桶并使用该密钥。缺少这一步,导出会因权限错误而失败。
对每个账号重复第 2 步和第 3 步。source-accounts.sh 会维护这份清单并重新应用全部授权
——添加新账号不会移除已有的账号。
查看当前清单:
sh source-accounts.sh list安装完成之后
Section titled “安装完成之后”其余步骤与单账号场景完全一致:在 Origens(数据来源)中勾选集群,在 Bancos(数据库)中勾选数据库。请参阅 配置数据接入。
在控制台中,数据来源会带账号标识显示,以免混淆不同账号中同名的集群。