我正在尝试以镶木地板格式还原存储在S3中的快照。但是我得到了错误
”调用RestoreDBInstanceFromS3操作时发生错误(InvalidParameterValue):无法下载指定Amazon S3存储桶中的文件。确保您已经创建了允许Amazon RDS使用的AWS Identity and Access Management(IAM)角色为您访问Amazon S3。” 。
这是我创建的IAM策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ImportPolict",
"Effect": "Allow",
"Action": [
"s3:PutObject*",
"s3:ListBucket",
"s3:GetObject*",
"s3:DeleteObject*",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::bucket-name",
"arn:aws:s3:::bucket-name/*"
]
}
]
}
在角色上配置的信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
这是我正在使用的命令:aws rds restore-db-instance-from-s3 --allocated-storage 150 --db-instance-identifier instanceName --db-instance-class db.t2.medium --engine mysql --master-username user --master-user-password password --s3-bucket-name bucket-name --s3-ingestion-role-arn arnToRole --source-engine mysql --source-engine-version 5.6.44
该用户有权访问S3存储桶,并且存储桶策略上未配置任何内容
答案 0 :(得分:1)
如果您使用 KMS 加密存储桶或对象,则需要授予对 KMS 的访问权限。我创建了该政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:*",
"Resource": "*"
}
]
}
并将其添加到我在恢复数据库时使用的角色。 请注意:该政策可能比要求的范围更广。