我正在运行以下命令:
aws ec2 create-volume --region eu-west-1 --availability-zone eu-west-1a --snapshot-id snap-02583b4b1fb1d2d84
我收到回复:
{
"SnapshotId": "snap-02583b4b1fb1d2d84",
"Size": 40,
"VolumeType": "standard",
"Encrypted": true,
"State": "creating",
"VolumeId": "vol-0d7bec77ac1164266",
"CreateTime": "2017-05-09T10:17:03.521Z",
"AvailabilityZone": "eu-west-1a"
}
然而,任何后续命令;如:
aws ec2 wait volume-available --volume-ids vol-0d7bec77ac1164266
返回:
Waiter VolumeAvailable failed: The volume 'vol-0d7bec77ac1164266' does not exist.
当我查看Web UI卷仪表板时;我看不到音量。我检查过每个地区。
以前有人见过这种行为吗?
更新
如果我在另一台计算机上使用具有*资源*权限的不同IAM用户执行该命令,该命令似乎按预期工作。
更新2
似乎卷已加密,并且权限可能无法补偿加密卷。
答案 0 :(得分:2)
尝试从加密快照创建卷时遇到同样的问题。 create volume命令似乎成功完成:
var tuples = sqlServerNames.SelectMany(server => GetDatabases(server).Select(db => Tuple.Create(server, db))).ToList()
但是,似乎永远不会创建卷,也无法找到它来描述它。
问题在于创建快照的KMS密钥是待删除的。通过取消KMS删除并重新启用密钥,可以成功创建卷。
答案 1 :(得分:0)
行。我有它的工作;但我仍然认为CLI存在问题。
正在创建的卷已加密。因此,需要权限来处理加密卷。
我能让它工作的唯一方法是添加以下权限:
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant",
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey",
"ec2:AttachVolume",
"ec2:DescribeVolume*",
"ec2:Describe*",
"ec2:CreateVolume",
"ec2:DescribeSnapshots",
"ec2:AttachVolume"
在加密卷上执行命令时,该工具不会报告任何权限错误。
答案 2 :(得分:0)
我无法重现您的问题。
我做了以下步骤:
创建具有这些权限的IAM用户作为内联策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"ec2:CreateVolume"
],
"Resource": [
"*"
]
}
]
}
从快照创建卷(作为该用户):
aws ec2 create-volume --region ap-southeast-2 --availability-zone ap-southeast-2a --snapshot-id snap-abcd1234 --profile xyz
{
"AvailabilityZone": "ap-southeast-2a",
"Encrypted": false,
"VolumeType": "standard",
"VolumeId": "vol-03e2eee8e64f593d3",
"State": "creating",
"SnapshotId": "snap-abcd1234",
"CreateTime": "2017-05-11T05:17:23.960Z",
"Size": 30
}
成功创建了卷。
该用户无权调用VolumeAvailable
,因此我使用了其他用户:
aws ec2 wait volume-available --volume-ids vol-03e2eee8e64f593d3 --region ap-southeast-2 --profile normal
该命令立即完成,没有错误。