aws ec2 create-volume没有创建卷

时间:2017-05-09 10:26:22

标签: amazon-web-services amazon-ec2 aws-cli

我正在运行以下命令:

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

似乎卷已加密,并且权限可能无法补偿加密卷。

3 个答案:

答案 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"

在加密卷上执行命令时,该工具不会报告任何权限错误。

我提出了这个问题:https://github.com/aws/aws-cli/issues/2592

答案 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

该命令立即完成,没有错误。