Назад | Перейти на главную страницу

Как расшифровать значения Secure String в хранилище параметров с помощью .NET Core AmazonSimpleSystemsManagementClient

У меня есть следующий код в лямбда-функции:

        var ssmConfig = new AmazonSimpleSystemsManagementConfig
        {
            RegionEndpoint = RegionEndpoint.APSoutheast2
        };

        using (var ssmClient = new AmazonSimpleSystemsManagementClient(ssmConfig))
        {
            var myParameter = await ssmClient.GetParameterAsync(
                new GetParameterRequest
                {
                    Name = "myParameter",
                    WithDecryption = true
                });

У функции Lambda есть следующая политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeParameters",
                "ssm:GetParameters",
                "ssm:GetParameter"
            ],
            "Resource": "arn:aws:ssm:ap-southeast-2:23314131242:parameter/myParameters/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:ap-southeast-2:23314131242:key/myKey"
            ]
        }
    ]
}

Однако я получаю следующую ошибку:

Amazon.SimpleSystemsManagement.AmazonSimpleSystemsManagementException: The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access

Используя симулятор политики IAM, я убедился, что роль Lambda имеет ожидаемые разрешения.

Мне нужно как-то указывать псевдоним CMK? Что еще могло быть не так?

Я понял, что мне также нужно добавить роль Lambda в качестве «ключевого пользователя» CMK. Видеть https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users для подробностей.

Это можно сделать через консоль, отредактировав CMK, а затем прокрутив страницу вниз до раздела «Ключевые пользователи».