ホームページ  >  記事  >  バックエンド開発  >  Golang でのキー管理: Vault を使用したパスワードの保存とアクセス

Golang でのキー管理: Vault を使用したパスワードの保存とアクセス

王林
王林オリジナル
2023-07-17 12:09:151438ブラウズ

Golang でのキー管理: Vault を使用してパスワードを保存およびアクセスする

はじめに:
日常の開発では、データベースへの接続や API へのアクセスなどにパスワードや機密情報を使用する必要がよくあります。ただし、これらのパスワードや機密情報をコードに直接ハードコーディングすることは安全な方法ではありません。この機密情報をより適切に保護するために、キー管理ツールとして Vault を使用できます。この記事では、Golang で Vault を使用してパスワードを安全に保存し、アクセスする方法を紹介します。

Vault とは何ですか?
Vault は HashiCorp によって開発された強力なツールです。パスワードや API キーなどの機密情報を管理する安全な方法を提供します。 Vault は、暗号化されたストレージとアクセス ポリシーを使用してこの機密情報を保護し、許可されたユーザーのみがアクセスできるようにします。

Golang での Vault の使用:
まず、Vault をローカルにインストールし、Vault サーバーを起動する必要があります。 Vault のインストールと起動に関するドキュメントは、公式 Web サイト https://www.vaultproject.io/ から入手できます。

Vault サーバーが起動したら、Golang アプリケーションで VaultClient を使用してパスワードを取得および保存できます。

まず、次の依存関係を Golang プロジェクトに追加する必要があります:

import (
    "github.com/hashicorp/vault/api"
)

次に、Vault サーバーのアドレスと認証情報を設定する必要があります:

client, err := api.NewClient(&api.Config{
    Address: "http://localhost:8200", // 设置Vault服务器的地址
})

if err != nil {
    log.Fatal(err)
}

client.SetToken("YOUR_VAULT_TOKEN") // 设置Vault服务器的访问令牌

これで、VaultClient を使用してパスワードを取得および保存できるようになりました。以下にサンプル コードを示します。

Vault からパスワードを取得します。

func getPassword(path string) (string, error) {
    secret, err := client.Logical().Read("secret/data/" + path) // 从Vault中读取密码
    if err != nil {
        return "", err
    }

    password, ok := secret.Data["password"].(string)
    if !ok {
        return "", fmt.Errorf("Invalid password")
    }

    return password, nil
}

パスワードを Vault に保存します。

func storePassword(path, password string) error {
    data := map[string]interface{}{
        "password": password,
    }

    _, err := client.Logical().Write("secret/data/" + path, data) // 将密码存储到Vault中
    if err != nil {
        return err
    }

    return nil
}

ご覧のとおり、パスワードを取得するときは、次のものが必要です。 Vault にパスワードを保存するパスを指定します。パスワードを保存するときは、パスワードと保存パスを指定する必要があります。

パスワードに加えて、API キー、データベース接続文字列などの他の機密情報も保存および取得できます。

概要:
この記事では、Golang アプリケーションで Vault を使用してパスワードを保存およびアクセスする方法を学びました。 Vault を使用することで、機密情報をより安全に管理し、許可されたユーザーのみが機密情報にアクセスできるようにすることができます。上記のコード例を通じて、Vault を Golang プロジェクトに簡単に統合し、機密情報を保護できます。この記事がパスワードと機密情報の管理を改善するのに役立つことを願っています。

以上がGolang でのキー管理: Vault を使用したパスワードの保存とアクセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。