Golang と Vault を使用して安全な分散アプリケーションを構築する
はじめに:
今日のデジタル時代において、セキュリティは開発者が注意を払わなければならない焦点の 1 つです。アプリケーションがより複雑になり、分散システムを使用して構築されることが増えるにつれ、アプリケーションの機密データを保護することがさらに重要になります。この記事では、HashiCorp の Vault ツールと Golang プログラミング言語を使用して安全な分散アプリケーションを構築する方法を検討します。 Vault を使用して機密データを保存および管理し、Golang アプリケーションを通じてアクセスできるようにする方法に焦点を当てます。
次に、簡単な Vault サーバー構成ファイルの例 (config.hcl) を示します。
listener "tcp" { address = "127.0.0.1:8200" tls_disable = 1 } storage "file" { path = "/path/to/vault/data" }
上記の構成ファイルは、Vault サーバーのリスニング アドレスとストレージ パスを指定します。要件に応じて変更できます。
Vault サーバーを起動するコマンドは次のとおりです:
$ vault server -config=config.hcl
Vault サーバーは構成ファイルで指定されたアドレスで起動し、クライアントからのリクエストを待機します。
Vault SDK を使用した Vault へのアクセス
Golang アプリケーションで Vault を使用するには、Vault の Golang SDK をインストールして使用する必要があります。次のコマンドを使用して SDK をインストールできます:
$ go get github.com/hashicorp/vault/api
次に、次のコード例を使用して Vault に接続してアクセスできます:
package main import ( "fmt" "os" "github.com/hashicorp/vault/api" ) func main() { // 使用环境变量设置Vault的地址和凭据 vaultAddress := os.Getenv("VAULT_ADDR") vaultToken := os.Getenv("VAULT_TOKEN") // 创建Vault的API客户端 client, err := api.NewClient(&api.Config{ Address: vaultAddress, }) if err != nil { fmt.Println("无法创建Vault客户端:", err) return } // 使用提供的Token进行身份验证 client.SetToken(vaultToken) // 通过API客户端访问Vault // 在这里添加你的代码逻辑... }
上記ではコードを読み取ると、環境変数によって Vault アドレスとアクセス トークンが設定され、この情報を使用して Vault API クライアントが作成されます。ニーズに応じてカスタマイズできます。
// 密文应该是已加密的敏感数据(如密码、API令牌等) plaintext := "my-secret-plaintext" // 创建一个存储KV的秘密引擎 secret, err := client.Logical().Write("secret/data/my-secrets", map[string]interface{}{ "data": map[string]interface{}{ "secret": plaintext, }, }) if err != nil { fmt.Println("存储敏感数据失败:", err) return } fmt.Println("敏感数据已存储:", secret)
// 读取存储的敏感数据 secret, err := client.Logical().Read("secret/data/my-secrets") if err != nil { fmt.Println("读取敏感数据失败:", err) return } fmt.Println("敏感数据:", secret.Data["secret"])
この記事では、Golang プログラミング言語と Vault ツールを使用して安全な分散アプリケーションを構築する方法を紹介しました。私たちは、Vault の役割とインストールと構成のプロセスを学び、Golang の Vault SDK を使用して Vault サーバーに接続してアクセスしました。また、Vault を使用して機密データを保存し、アクセスする方法も検討しました。
以上がGolang と Vault を使用して安全な分散アプリケーションを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。