Golang 및 Vault: 안전한 마이크로서비스 아키텍처 구축
현대 애플리케이션 개발에서는 안전한 마이크로서비스 아키텍처 구축이 중요합니다. 마이크로서비스 아키텍처의 인기로 인해 점점 더 많은 서비스가 다양한 환경에서 실행되고 서로 통신하므로 비밀번호, API 키, 데이터베이스 자격 증명과 같은 민감한 데이터를 보호하고 관리하는 것이 특히 중요해졌습니다. 이 기사에서는 Golang과 Vault를 사용하여 안전한 마이크로서비스 아키텍처를 구현하는 방법을 소개합니다.
암호화된 백엔드 생성:
$ vault secrets enable -path=secret kv
민감한 데이터 추가:
$ vault kv put secret/myapp/api_key value=abc123
이제 민감한 데이터는 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 키를 인쇄합니다.
$ go run main.go
모든 것이 정상이면 출력은 다음과 유사합니다.
API Key: abc123
이는 Vault에서 API 키를 성공적으로 가져와 Golang 마이크로서비스에서 사용했음을 의미합니다.
코드 샘플 참조: https://github.com/99designs/keyring
위 내용은 Golang 및 Vault: 안전한 마이크로서비스 아키텍처 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!