AWS Cloud Development Kit (AWS CDK) — это среда разработки программного обеспечения с открытым исходным кодом, позволяющая определять облачную инфраструктуру в коде и предоставлять ее через AWS CloudFormation. AWS Key Management Service (KMS) — это управляемый сервис, который позволяет легко создавать и контролировать ключи шифрования, используемые для шифрования данных.
В этом руководстве мы рассмотрим пример создания ключа KMS с помощью AWS CDK.
Предпосылки
Прежде чем мы начнем, убедитесь, что у вас есть следующее: — Учетная запись AWS — Установлен и настроен интерфейс командной строки AWS — Установлены Node.js и npm — Установлен AWS CDK
Шаг 1. Создайте новый проект AWS CDK
Во-первых, давайте создадим новый каталог для нашего проекта и перейдем в него:
mkdir kms-cdk-example
cd kms-cdk-example
Далее давайте инициализируем новый проект AWS CDK:
cdk init app --language=typescript
Шаг 2: Установите необходимые зависимости
Нам нужно установить AWS SDK и AWS CDK модуль AWS KMS:
npm install aws-sdk @aws-cdk/aws-kms
Шаг 3. Создайте новый ключ KMS.
Откройте файл `lib/kms-cdk-example-stack.ts` и добавьте следующий код для создания нового ключа KMS:
import * as cdk from '@aws-cdk/core';
import * as kms from '@aws-cdk/aws-kms';
export class KmsCdkExampleStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
new kms.Key(this, 'MyKey', {
enableKeyRotation: true,
});
}
}
Это создаст новый ключ KMS с включенной ротацией ключей.
Шаг 4. Разверните стек
Прежде чем мы сможем развернуть стек, нам нужно загрузить нашу среду AWS:
cdk bootstrap
После начальной загрузки мы можем развернуть стек:
cdk deploy
Шаг 5. Проверьте ключ KMS
После развертывания стека мы можем протестировать ключ KMS, зашифровав и расшифровав некоторые данные с помощью AWS SDK:
const AWS = require('aws-sdk');
const kms = new AWS.KMS();
const plaintext = 'my secret data';
kms.encrypt({ KeyId: 'MyKey', Plaintext: plaintext }, (err, data) => {
if (err) console.log(err, err.stack);
else {
const ciphertext = data.CiphertextBlob;
kms.decrypt({ CiphertextBlob: ciphertext }, (err, data) => {
if (err) console.log(err, err.stack);
else console.log(data.Plaintext.toString());
});
}
});
Это зашифрует «открытый текст» с помощью нашего ключа KMS, а затем расшифрует «зашифрованный текст», чтобы получить «открытый текст».
Заключение
В этом руководстве мы рассмотрели пример создания ключа KMS с помощью AWS CDK. Мы также протестировали ключ, зашифровав и расшифровав некоторые данные. AWS CDK — это мощный инструмент для определения облачной инфраструктуры в коде и управления ею с помощью AWS CloudFormation.