繁体   English   中英

使用 Node.js 更新 Google Cloud Secret Manager 中的数据

[英]Update data in Google Cloud Secret Manager using Node.js

我在 Google Cloud Secret Manager 中有一些数据,有什么方法可以更新这些数据。 我正在尝试使用以下代码进行更新

client.updateSecret({
  secret: {
    name: 'projects/xyz/secrets/test',
    labels: {
      secretmanager: 'rocks',
    },
  },
  updateMask: {
    paths: ['labels'],
  },
}).then(res => {
  let [data] = res
  console.log('success in updating', data)
}).catch(rej => {
  console.log('erro in updating', rej)
})

Secret Manager 中的数据存储在 Secret Version 上

  • 秘密- 包含有关秘密的元数据,包括名称、时间戳、标签等。
  • 秘密版本- 包含实际的秘密数据。

一个Secret包含 0 个或多个Secret Versions Secret Versions是不可变的,所以你不能更新里面的值。 但是,您可以添加新的Secret Version 这将创建一个新的秘密版本并更新“最新”指针的值:

const [version] = await client.addSecretVersion({
  parent: parent,
  payload: {
    data: myNewPayload,
  },
});

有关版本控制的更多信息,请查看:

您可以使用此“Node.js”示例代码作为参考来更新 Google Cloud Secret Manager 中的数据。

/**
 * TODO(developer): Uncomment these variables before running.
 */
// const name = 'projects/my-project/secrets/my-secret';

// Imports the Secret Manager library
const {SecretManagerServiceClient} = require('@google-cloud/secret-manager');

// Instantiates a client
const client = new SecretManagerServiceClient();

async function updateSecret() {
  const [secret] = await client.updateSecret({
    secret: {
      name: name,
      labels: {
        secretmanager: 'rocks',
      },
    },
    updateMask: {
      paths: ['labels'],
    },
  });

  console.info(`Updated secret ${secret.name}`);
}

updateSecret();

有关更多信息,请参阅此文档

假设秘密已经存在,您需要创建一个秘密版本来更新秘密数据。 这是我使用的方法。

const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
const client = new SecretManagerServiceClient()
const parent = 'projects/YOUR_PROJECT' 

async function addSecretVersion(secretName, payload) {

    if (typeof payload != 'string') throw `Secret payload must be a string`
    const [version] = await client.addSecretVersion({
        parent: `${parent}/secrets/${secretName}`,
        payload: {
            data: Buffer.from(payload, 'utf8'),
        },
    })
    console.info(`Added secret version ${version.name}`)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM