我正在尝试将服务器数据备份到 S3,但没有成功。下面是我运行以在 S3 上开始备份的脚本。
我已经使用 IAM 创建了一个用户,并已向该用户授予所有权限。
#!/bin/bash
export AWS_ACCESS_KEY_ID="access key goes here"
export AWS_SECRET_ACCESS_KEY="secrete key goes here"
export PASSPHRASE="passphrase goes here"
duplicity --no-encryption demo/* s3+http://s3.amazonaws.com/[backet-name] &>> backups.log
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
PASSPHRASE=""
以下是日志的输出:
Import of duplicity.backends.dpbxbackend Failed: No module named dropbox
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
No signatures found, switching to full backup.
Failed to create bucket (attempt #1) 's3.amazonaws.com' failed (reason: S3ResponseError: S3ResponseError: 403 Forbidden)
答案1
您需要调整用户权限:
选项1
为您的 S3 用户添加 S3 完全访问权限。
- IAM / 用户 / 权限和附加策略
- 添加策略“AmazonS3FullAccess”
选项 2
为您的用户添加自定义策略。
转到你的存储桶特性并在权限选项卡,选择添加存储桶策略然后复制这个:
{
"Statement": [
{
"Principal": {
"AWS": "*"
},
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::my-bucket-name/*", "arn:aws:s3:::my-bucket-name"]
}
]
}
代替我的存储桶名称与您的备份进行验证,然后重试。您应该能够顺利上传 duplicity 备份。