针对本机备份和还原进行设置
要设置本机备份和还原,您需要三个组件:
-
用于存储备份文件的 Amazon S3 存储桶。
您必须将 S3 存储桶用于备份文件,然后上传您要迁移到 RDS 的备份。如果您已有一个 Amazon S3 存储桶,则可以使用它。如果没有,则可以创建存储桶。或者,您可以选择在使用
SQLSERVER_BACKUP_RESTORE
添加 AWS Management Console 选项时为自己创建新的存储桶。有关使用 S3 的信息,请参阅 Amazon Simple Storage Service 用户指南
-
用于访问存储桶的 AWS Identity and Access Management (IAM) 角色。
如果您已有一个 IAM 角色,则可以使用它。您可以选择在使用AWS Management Console添加
SQLSERVER_BACKUP_RESTORE
选项时为自己创建新的 IAM 角色。或者,您可以手动创建一个新的角色。如果您想要手动创建新的 IAM 角色,请使用下一部分中介绍的方法。如果要将信任关系和权限策略附加到现有 IAM 角色,请执行相同操作。
-
已添加到数据库实例上选项组的
SQLSERVER_BACKUP_RESTORE
选项。要在数据库实例上启用本机备份和还原,请将
SQLSERVER_BACKUP_RESTORE
选项添加到数据库实例上的选项组。有关更多信息和说明,请参阅 SQL Server 中对本机备份和还原的支持。
为本机备份和还原手动创建 IAM 角色
如果要手动创建新的 IAM 角色以用于本机备份和还原,可以这样做。在这种情况下,您将创建一个角色,以将权限从 Amazon RDS 服务委派给 Amazon S3 存储桶。创建 IAM 角色时,您将附加信任关系和权限策略。信任关系允许 RDS 代入此角色。这些权限策略定义此角色可以执行的操作。有关创建角色的更多信息,请参阅创建将权限委派给 AWS 服务的角色。
对于本机备份和还原功能,可使用类似于本节中以下示例的信任关系和权限策略。在下面的示例中,我们使用服务委托人名称 rds.amazonaws.com
作为所有服务账户的别名。在其他示例中,我们指定 Amazon Resource Name (ARN) 以标识我们在信任策略中授予访问权限的其他账户、用户或角色。
我们建议在基于资源的信任关系中使用 aws:SourceArn
和 aws:SourceAccount
全局条件上下文键,以此限制服务对特定资源的权限。这是防范混淆代理问题最有效的方法。
您可以使用这两个全局条件上下文键并让 aws:SourceArn
值包含账户 ID。在这种情况下,当 aws:SourceAccount
值和 aws:SourceArn
值中的账户使用相同策略语句时,确保二者使用相同的账户 ID。
-
如果您想对单个资源进行跨服务访问,请使用
aws:SourceArn
。 -
如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用
aws:SourceAccount
。
在信任关系中,请务必使用 aws:SourceArn
全局条件上下文键和访问角色资源的完整 ARN。对于本机备份和还原,请确保同时包含数据库选项组和数据库实例,如以下示例所示。
例 与本机备份和还原的全局条件上下文键的信任关系
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
以下示例使用 ARN 指定资源。有关使用 ARN 的更多信息,请参阅 Amazon Resource Name (ARN)。
例 不带加密支持的适用于本机备份和还原的权限策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
例 带加密支持的适用于本机备份和还原的权限策略
若要对备份文件进行加密,可在权限策略中包含加密密钥。有关加密密钥的更多信息,请参阅 AWS Key Management Service 开发人员指南中的入门。
注意
您必须使用对称加密 KMS 密钥来加密您的备份。Amazon RDS 不支持非对称 KMS 密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的创建对称 KMS 密钥。
IAM 角色还必须是 KMS 密钥的密钥用户和密钥管理员,也就是说,必须在密钥策略中指定该密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的创建对称 KMS 密钥。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:
region
:account-id
:key/key-id
" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }