В этой статье показано, как управлять секретами с помощью AWS Secrets Manager и RDS.
Что такое Секретный менеджер?
Угрозы безопасности и проблемы конфиденциальности также поднимались экспертами и людьми по всему миру. Чтобы защитить ваши цифровые секреты, такие как учетные данные базы данных, API и токены, вам подойдет AWS Secret Manager.
AWS Secret Manager помогает компаниям и организациям защитить свои ресурсы и сервисы от злонамеренных намерений и кибератак с целью перехвата или кражи конфиденциальных данных. Этот сервис добавляет дополнительный уровень безопасности к ресурсам и позволяет легко масштабировать секреты и управлять ими.
Как управлять секретами с помощью AWS Secret Manager и RDS?
Всякий раз, когда пользователь настраивает кластер RDS, ему запрашивается информация о регионе, имени пользователя и пароле кластера, и он идентифицирует его с помощью уникального идентификатора кластера. Интеграция RDS с Secret Manager позволит вам защитить ваши учетные данные RDS и соответствующим образом управлять ими.
Используя диспетчер секретов, вы можете определить жизненный цикл этих секретов и интегрировать их с другими ресурсами. В этой статье мы добавим AWS Secret Manager с функцией Lambda в наш кластер RDS.
Ниже приведены некоторые шаги для этой цели:
Шаг 1. Создайте кластер RDS
Секретный менеджер широко используется для защиты учетных данных базы данных. Итак, первый шаг — создание RDS-кластера. Для этого обратитесь к этой статье: « Как создать кластер RDS на AWS? ». У нас есть кластер RDS, который работает:
Шаг 2. Секретный менеджер AWS
В консоли управления AWS найдите и выберите « Менеджер секретов »:
В интерфейсе Секретного менеджера нажмите кнопку «Храни новый секрет» кнопка:
в Тип секрета , выберите «Учетные данные для базы данных Amazon RDS» вариант, поскольку мы настраиваем его для RDS:
Далее идет Реквизиты для входа раздел. В этом разделе укажите Имя пользователя и Пароль для базы данных RDS, которую мы только что создали:
в Ключ шифрования Пользователь может либо использовать файл по умолчанию, предоставленный AWS Secret Manager, либо создать новый, нажав на значок «Добавить новый ключ» вариант. Аналогично, в База данных раздел, выберите «Экземпляр БД» что вы создали и нажали 'Следующий' кнопка:
Укажите уникальное имя для «Секрет» это поможет нам идентифицировать его позже. Описание не является обязательным. Однако пользователь также может предоставить здесь собственное описание:
Об интерфейсе , Секретный менеджер также предоставляет нам возможность воспроизвести секрет. Для этого выберите регион, в котором вы хотите создать репликацию. В этой демонстрации нам не требуется репликация, поэтому, оставив остальные настройки по умолчанию, коснитесь значка 'Следующий' кнопка:
Сохранив значение по умолчанию, мы теперь просматриваем и редактируем информацию. После подтверждения предоставленной информации нажмите на кнопку 'Магазин' кнопку для создания и сохранения секрета:
Вот секрет в том успешно создано . Нажать на ' Имя секрета », чтобы просмотреть его конфигурации:
Прокрутив интерфейс вниз, мы увидим раздел «Пример кода». В этом разделе код генерируется Секретный менеджер. Скопируйте этот код, так как он будет использоваться в Лямбда-функция:
// Используйте этот фрагмент кода в ваше приложение.// Если тебе надо более информацию о конфигурациях или реализации примера кода см. в документации AWS:
// https: // docs.aws.amazon.com / SDK для Javascript / v3 / руководство для разработчиков / начало работы.html
Импортировать {
СекретыМенеджерКлиент,
Команда GetSecretValue,
} от '@aws-sdk/client-secrets-manager' ;
const secret_name = 'мойсекрет1/ш' ;
константный клиент = новый SecretsManagerClient ( {
область, край: 'ап-юго-восток-1' ,
} ) ;
позволять ответ;
пытаться {
ответ = ожидайте client.send (
новая команда GetSecretValueCommand ( {
SecretId: secret_name,
Стадия версии: 'АВСКАРРЕНТ' , // По умолчанию VersionStage имеет значение AWSCURRENT. если неопределенные
} )
) ;
} ловить ( ошибка ) {
// Список исключений см.
// https: // docs.aws.amazon.com / менеджер секретов / последний / апиреференция /
API_GetSecretValue.html
ошибка выброса;
}
константный секрет = ответ.SecretString;
// Ваш код находится здесь
Шаг 3. Создайте лямбда-функцию
В интерфейсе лямбда-функции нажмите « Создать функцию ' кнопка:
Нажать на «Автор с нуля» вариант из «Создать функцию» интерфейс:
Далее мы движемся в сторону 'Основная информация' раздел. Укажите имя функции в «Имя функции» поле, а затем укажите «Время выполнения» среда. Здесь мы выбрали «Node.js 16.x» в поле Время выполнения:
Нажать на «Создать функцию» кнопка:
Здесь мы вставили код, сгенерированный Секретный менеджер . После вставки кода нажмите кнопку 'Развертывать' кнопка:
После развертывания всех изменений нажмите кнопку «Конфигурация» вкладка, чтобы предоставить разрешения для Secret Manager:
Нажать на «Разрешения» вариант из «Конфигурации» вкладка. Это отобразит « Роль исполнителя» интерфейс и нажмите на следующую ссылку под «Имя роли» поле:
в «Политика разрешений» раздел, нажмите на кнопку «Добавить разрешения» кнопка. В раскрывающемся меню нажмите на «Прикрепить политики» вариант:
в «Другие политики разрешений» раздел, найдите и выберите «Менеджер секретовЧтениеЗапись» вариант. Ударь «Добавить разрешения» кнопка:
Здесь политика успешно подключена и настроена:
Шаг 4. Подтвердите секретный доступ
Теперь перейдите в интерфейс панели управления Lambda. Нажать на 'Тест' вкладка:
В следующем интерфейсе укажите имя тестового события в поле 'Название события' поле. Нажать на 'Сохранять' кнопка для применения конфигураций:
Здесь тест успешно настроен. Нажать на 'Тест' кнопка:
Здесь мы нажмем на 'Тест' кнопку еще раз, и он отобразит следующий вывод:
Это все из этого руководства.
Заключение
Чтобы управлять секретами в Secret Manager, создайте кластер RDS, присоедините его к Secret Manager, а затем выполните этот код в настроенной функции Lambda. Лямбда-функция определит, можно ли получить доступ к секрету, выполнив в нем код, содержащий спецификацию кластера RDS. Эта статья представляет собой пошаговое руководство по управлению секретами с помощью AWS Secret Manager и RDS.