ホームページ  >  記事  >  バックエンド開発  >  Golang と Vault: 安全なマイクロサービス アーキテクチャの構築

Golang と Vault: 安全なマイクロサービス アーキテクチャの構築

WBOY
WBOYオリジナル
2023-07-17 08:21:391255ブラウズ

Golang と Vault: 安全なマイクロサービス アーキテクチャの構築

最新のアプリケーション開発では、安全なマイクロサービス アーキテクチャを構築することが重要です。マイクロサービス アーキテクチャの人気に伴い、さまざまな環境で実行され、相互に通信するサービスがますます増えているため、パスワード、API キー、データベース資格情報などの機密データの保護と管理が特に重要になっています。この記事では、Golang と Vault を使用して安全なマイクロサービス アーキテクチャを実装する方法を紹介します。

  1. Golang とマイクロサービス
    Golang は強力なプログラミング言語であり、その優れた同時実行パフォーマンスと簡潔な構文により、マイクロサービスを構築するための一般的な選択肢の 1 つとなっています。 Golang の標準ライブラリは、HTTP リクエスト、JSON 処理、データ ストレージなどを処理するための完全な機能を提供します。この例では、Golang を使用して単純なマイクロサービスを構築します。
  2. Vault の概要
    Vault は、機密データを管理および保護するために HashiCorp によって開発されたツールです。パスワード、API キー、データベース認証情報などを保存および生成でき、アクセス制御および監査機能を提供します。 Vault は動的アクセス資格情報の生成とローテーションもサポートしており、機密データのセキュリティを確保します。
  3. Vault を使用して機密データを保護する
    まず、Vault に「my-secret」という名前の暗号化バックエンドを作成し、そこに機密データを保存する必要があります。 Vault の CLI ツールまたは API を使用して操作できます。

暗号化バックエンドの作成:

$ vault secrets enable -path=secret kv

機密データの追加:

$ vault kv put secret/myapp/api_key value=abc123

これで、機密データは Vault に保存され、暗号化されて保護されました。次のステップは、このデータを取得して Golang マイクロサービス コードで使用することです。

  1. Golang での Vault の使用
    Golang で Vault を使用するには、Vault の Golang ライブラリを使用して Vault と通信する必要があります。 go get コマンドを使用して、Vault の Golang ライブラリをインストールできます:
$ go get -u github.com/99designs/keyring

次に、Vault に接続して機密データを取得する簡単な Golang プログラムを作成します:

package main

import (
    "fmt"
    "log"

    "github.com/99designs/keyring"
)

func main() {
    vaultConfig := keyring.Config{
        ServiceName: "myapp",
        URL:         "http://localhost:8200",
    }

    keyring, err := keyring.Open(vaultConfig)
    if err != nil {
        log.Fatal(err)
    }

    item, err := keyring.Get("api_key")
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("API Key:", item.Data)
}

たとえば、Vault の構成とサービス名を定義します。Vault に接続した後、keyring.Get メソッドを使用して、Vault から「api_key」という名前の機密データを取得します。最後に、結果の API キーを出力します。

  1. Golang マイクロサービスを実行する
    これで、Golang マイクロサービスを実行して、Vault から機密データが正常に取得されたかどうかを確認できます。
$ go run main.go

すべてが正常であれば、出力は次のようになります:

API Key: abc123

これは、Vault から API キーを正常に取得し、それを Golang マイクロサービスで使用したことを意味します。

  1. 概要
    この記事では、Golang と Vault を使用して安全なマイクロサービス アーキテクチャを構築する方法を紹介しました。機密データを Vault に保存し、Vault の Golang ライブラリを使用して通信することで、機密データを保護および管理し、マイクロサービスに追加のセキュリティ層を提供できます。この記事が、安全なマイクロサービス アーキテクチャを構築する方法を理解するのに役立つことを願っています。

コードサンプルリファレンス: https://github.com/99designs/keyring

以上がGolang と Vault: 安全なマイクロサービス アーキテクチャの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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