Я пытаюсь создать том EBS с AWS CDK, который зашифрован моим собственным ключом KMS на С#, с помощью этого фрагмента:
var kmsProps = new EncryptionKeyProps
{
Description = "Encryption key for Storage",
EnableKeyRotation = true,
Enabled = true,
Retain = true
};
var kms = new EncryptionKey(stack, "kms-storage", kmsProps);
var kmsAlias = kms.AddAlias("alias/" + stack.StackName + "/storage");
var storageVolume = new CfnVolume(stack, "server-storage-encrypted", new CfnVolumeProps
{
AvailabilityZone = privateSubnet1.AvailabilityZone,
KmsKeyId = kmsAlias.AliasName,
Size = 30,
Encrypted = true,
Tags = new ICfnTag[]
{
new CfnTag {Key = "Name", Value = "Server Storage"}
},
VolumeType = "gp2"
});
Но команда развертывания завершается с ошибкой Volume vol-0e88979f5568c16fa is still creating
Любая идея, если я делаю что-то не так с политикой KMS и т. д.? Пытался найти, единственное, что я нашел, это то, что для автоматического масштабирования нужен доступ к ключу, ничего о EBS/EC2
PS: извиняюсь за путаницу в отношении: CFN или нет. Обычно я использую Python и boto3, поэтому не был сразу знаком с C# (или Java SDK). Тем не менее, мой совет остается в силе: разбейте все на части и протестируйте каждый ресурс отдельно.
Да, протестировал незашифрованный том, и он сработал, и он работает, если я разрешаю все всем в политике ключей. Не знаю, если это ошибка CFN или CDK, но я предполагаю, что это что-то изношенное в созданном CFN
Вы пытались создать if с помощью старого доброго шаблона YAML/JSON? Тогда, может быть, с Python? Чтобы заблокировать, является ли это проблемой C# SDK?
Я побежал к этому вопросу сегодня. Выяснилось, что использование псевдонима в KmsKeyId вызывало проблему. Стек был успешно создан после изменения псевдонима на фактический идентификатор ключа. Хотя в документации говорится, что можно использовать псевдоним, это не сработало для меня.
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html
На самом деле псевдоним работает. Мой псевдоним был написан с ошибкой, но операция стека CF не сообщила об этом. Он просто долго зависал, пока не истечет время.
Когда вы говорите «команда развертывания не удалась», что именно вы имеете в виду? Я сбит с толку, поскольку вы также связали облачное формирование AWS, но это не CFN. Ключ KMS (и его псевдоним) создается правильно? Вы пытались разделить код, так как в одном фрагменте создается ключ, а затем, как только вы это проверите, вы используете его ARN для создания тома в отдельном фрагменте?