4.2.2.2. 配置 Amazon Web Services S3
您可以将 Amazon Web Services(AWS)S3 存储桶配置为 Migration Toolkit for Containers(MTC)的复制仓库。
先决条件
- AWS S3 存储桶必须可以被源和目标集群访问。
- 您必须安装了 AWS CLI。
如果您使用快照复制方法:
- 您必须有权访问 EC2 Elastic Block Storage (EBS)。
- 源和目标集群必须位于同一区域。
- 源和目标集群必须具有相同的存储类。
- 存储类必须与快照兼容。
流程
创建 AWS S3 存储桶:
$ aws s3api create-bucket \ --bucket <bucket> \ 1 --region <bucket_region> 2
创建 IAM 用户
velero
:$ aws iam create-user --user-name velero
创建 EC2 EBS 快照策略:
$ cat > velero-ec2-snapshot-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" } ] } EOF
为一个或所有 S3 存储桶创建 AWS S3 访问策略:
$ cat > velero-s3-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket>/*" 1 ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<bucket>" 2 ] } ] } EOF
输出示例
"Resource": [ "arn:aws:s3:::*"
将 EC2 EBS 策略附加到
velero
:$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-ebs \ --policy-document file://velero-ec2-snapshot-policy.json
将 AWS S3 策略附加到
velero
:$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-s3 \ --policy-document file://velero-s3-policy.json
为
velero
创建访问密钥:$ aws iam create-access-key --user-name velero { "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, 1 "AccessKeyId": <AWS_ACCESS_KEY_ID> 2 } }
创建
credentials-velero
文件:$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
在安装数据保护应用程序前,您可以使用
credentials-velero
文件为 AWS 创建Secret
对象。