Раскрытие секретов: изучение методов Get Secret Manager в AWS SDK v3

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.