【问题标题】:how can find list of secrets and certificate list from Azure vault via golang?如何通过 golang 从 Azure Vault 中找到机密列表和证书列表?
【发布时间】:2021-10-19 16:17:15
【问题描述】:

我正在尝试使用 Golang 集成 azure vault。我使用下面的代码来获取关键列表:

func (rcv Resources) KeyList(cred Credentials, subscriptionID, resourceGp, vaultName string) ([]string, error) {
    var (
        res []string
        err error
    )
    logger.Info("create client for connecting to the azure as vault client for getting key list.")
    cli := keyvault.NewKeysClient(subscriptionID)

    if cli.Authorizer, err = azureAD.Authorizer(cred.TenantID, cred.ClientID, cred.ClientSecret); err != nil {
        logger.Error("can not get authorizer for resources, err : ", err.Error())
        return nil, err
    }
    keyList, err := cli.List(context.Background(), resourceGp, "key-vault-zap-auth-scan2")
    if err != nil {
        logger.Error("can not get resources list , error : ", err.Error())
        return nil, err
    }
    for _, key := range keyList.Values() {

        res = append(res, *key.Name)
    }
    return res, nil
}

如您所知,我们在 azure key-vault 中存储了不同的对象,例如:密钥、机密和证书

我无法使用 SDK 获取秘密列表,因为它没有秘密客户端。

我该如何解决这个问题?

【问题讨论】:

    标签: azure go azure-keyvault azure-sdk


    【解决方案1】:

    对于秘密,有一个名为 azure-keyvault-secrets 的单独包。

    要列出机密,您要调用的方法是ListSecrets。这是来自here的相同示例:

    cred, err := azidentity.NewDefaultAzureCredential(nil)
    client, err := azsecrets.NewClient("https://my-key-vault.vault.azure.net/", cred, nil)
    
    pager := client.ListSecrets(nil)
    for pager.NextPage(context.Background()) {
        resp := pager.PageResponse()
        for _, secret := range resp.Secrets {
            fmt.Printf("Secret ID: %s", *secret.ID)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-28
      • 2023-02-01
      • 2020-01-27
      • 2016-02-17
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 2019-05-25
      相关资源
      最近更新 更多