本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定對 Amazon S3 儲存貯體的存取權
識別出 Amazon S3 儲存貯體後,接著授予快照許可以存取該儲存貯體。
識別要匯出的 Amazon S3 儲存貯體
識別要匯出資料庫快照的目標 Amazon S3 儲存貯體。使用現有的 S3 儲存貯體或建立新的 S3 儲存貯體。
注意
要匯出的 S3 儲存貯體必須與快照位於相同的 AWS 區域。
如需使用 Amazon S3 儲存貯體的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的下列內容:
使用IAM角色提供對 Amazon S3 儲存貯體的存取
在您將資料庫快照資料匯出至 Amazon S3 前,請給予快照匯出任務對 Amazon S3 儲存貯體的存取許可。
若要授與此權限,請建立可提供值區存取權的IAM原則,然後建立IAM角色並將原則附加至該角色。稍後,您可以將IAM角色指派給快照匯出工作。
重要
如果您打算使 AWS Management Console 用匯出快照,您可以選擇在匯出快照時自動建立IAM原則和角色。如需說明,請參閱 建立快照匯出工作。
給予資料庫快照任務對 Amazon S3 的存取權限
-
建立IAM策略。此政策會提供儲存貯體和物件許可,允許您的快照匯出任務存取 Amazon S3。
在政策中,包含下列必要動作,以允許將檔案從 Amazon Aurora 傳輸至 S3 儲存貯體:
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
在政策中,包含下列資源,以識別 S3 儲存貯體和該儲存貯體中的物件。以下資源清單顯示了用於訪問 Amazon S3 的亞馬遜資源名稱(ARN)格式。
-
arn:aws:s3:::
amzn-s3-demo-bucket
-
arn:aws:s3:::
amzn-s3-demo-bucket
/*
如需為 Amazon Aurora 建立IAM政策的詳細資訊,請參閱建立並使用 IAM 政策進行 IAM 資料庫存取。另請參閱《IAM使用指南》中的教學課程:建立並附加您的第一個客戶管理政策。
下列 AWS CLI 命令會建立以這些選項命名
ExportPolicy
的IAM策略。它授予對名為的存儲桶的訪問權限amzn-s3-demo-bucket
.注意
建立原則之後,請記下原則ARN的內容。將原則附加至IAM角色時,您需要執行後續步驟。ARN
aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }' -
-
建立IAM角色,以便 Aurora 可以代表您擔任此IAM角色,以存取您的 Amazon S3 儲存貯體。如需詳細資訊,請參閱《IAM使用指南》中的建立角色以將權限委派給IAM使用者。
下列範例示範如何使用 AWS CLI 命令建立名為的角色
rds-s3-export-role
。aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
-
將您建立的IAM策略附加到您建立的IAM角色。
下列 AWS CLI 命令會將先前建立的原則附加至名為的角色
rds-s3-export-role
。取代
為您在先前步驟中記下的原則ARN。your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
使用跨帳戶 Amazon S3 儲存貯體
您可以跨 AWS 帳戶使用 Amazon S3 儲存貯體。若要使用跨帳戶儲存貯體,請新增儲存貯體政策以允許存取您用於 S3 匯出的IAM角色。如需詳細資訊,請參閱範例 2:儲存貯體擁有者授予跨帳戶儲存貯體許可。
-
將儲存貯體政策附加至您的儲存貯體,如下列範例所示。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] }
使用跨帳戶 AWS KMS key
您可以使用跨帳戶 AWS KMS key 來加密 Amazon S3 匯出。首先,您將金鑰原則新增至本機帳戶,然後在外部帳戶中新增原IAM則。如需詳細資訊,請參閱允許其他帳戶中的使用者使用KMS金鑰。
使用跨帳戶KMS金鑰
-
將金鑰政策新增至本機帳戶。
下列範例將本機帳戶 123456789012 中的許可給予外部帳戶 444455556666 中的
ExampleRole
和ExampleUser
。{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
-
將IAM策略新增至外部帳戶。
下列範例IAM原則允許主體使用帳戶 123456789012 中的KMS金鑰進行密碼編譯作業。若要提供此許可給帳戶 444455556666 中的
ExampleRole
和ExampleUser
,請在該帳戶中附加政策給他們。{ "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }