AWS SDK v3 предоставляет мощный набор методов для взаимодействия с различными сервисами AWS, включая AWS Secrets Manager. В этой статье блога мы погрузимся в мир управления секретами и рассмотрим различные методы, доступные в AWS SDK v3, для получения секретов с помощью функции Get Secret Manager. Итак, пристегните ремни и откроем несколько секретов!
Метод 1: getSecretValue
Метод getSecretValue позволяет получить секретное значение, связанное с указанным секретом. Он возвращает секретное значение в виде строки. Вот пример его использования в Node.js:
const { SecretsManagerClient, GetSecretValueCommand } = require("@aws-sdk/client-secrets-manager");
const client = new SecretsManagerClient({ region: "us-west-2" });
const command = new GetSecretValueCommand({ SecretId: "my-secret-id" });
try {
const response = await client.send(command);
const secretValue = response.SecretString;
console.log(secretValue);
} catch (error) {
console.error(error);
}
Метод 2: getSecretValue с этапом версии
Иногда вам может потребоваться получить определенную версию секрета. Метод getSecretValue также принимает параметр VersionStage, позволяющий получить конкретную версию секрета в зависимости от его стадии. Вот пример:
const command = new GetSecretValueCommand({
SecretId: "my-secret-id",
VersionStage: "AWSCURRENT",
});
Метод 3: getSecretValue с идентификатором версии
В дополнение к параметру VersionStage вы также можете получить конкретную версию секрета, указав его VersionId. Это полезно, если вы хотите получить конкретную историческую версию секрета. Вот пример:
const command = new GetSecretValueCommand({
SecretId: "my-secret-id",
VersionId: "12345678-1234-1234-1234-1234567890ab",
});
Метод 4: getSecretValue с использованием политики ресурсов
AWS Secrets Manager поддерживает политики на уровне ресурсов, которые определяют, кто может получить доступ к секрету. Вы можете указать политику ресурсов, используя параметр ResourcePolicy, чтобы обеспечить соблюдение контроля доступа. Вот пример:
const command = new GetSecretValueCommand({
SecretId: "my-secret-id",
ResourcePolicy: JSON.stringify({
Version: "2012-10-17",
Statement: [
{
Sid: "AllowAccess",
Effect: "Allow",
Principal: "*",
Action: "secretsmanager:GetSecretValue",
Resource: "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-secret-id",
},
],
}),
});
В этой статье мы рассмотрели несколько методов, доступных в AWS SDK v3, для получения секретов с помощью функции Get Secret Manager. Мы рассмотрели базовый метод getSecretValue, а также его варианты, позволяющие получать секреты на основе стадии версии или идентификатора версии. Мы также коснулись использования политик ресурсов для обеспечения контроля доступа к секретам. Имея в своем распоряжении эти методы, вы можете безопасно получать секреты и управлять ими с помощью AWS Secrets Manager.