>백엔드 개발 >Golang >Golang의 키 관리: Vault를 사용하여 비밀번호 저장 및 액세스

Golang의 키 관리: Vault를 사용하여 비밀번호 저장 및 액세스

王林
王林원래의
2023-07-17 12:09:151514검색

Golang의 키 관리: Vault를 사용하여 비밀번호 저장 및 액세스

소개:
일상 개발에서는 데이터베이스 연결, API 액세스 등에 비밀번호와 민감한 정보를 사용해야 하는 경우가 많습니다. 그러나 이러한 비밀번호와 민감한 정보를 코드에 직접 하드코딩하는 것은 안전한 방법이 아닙니다. 이러한 민감한 정보를 더 잘 보호하기 위해 Vault를 주요 관리 도구로 사용할 수 있습니다. 이 글에서는 Golang에서 Vault를 사용하여 비밀번호를 안전하게 저장하고 액세스하는 방법을 소개합니다.

Vault란 무엇인가요?
Vault는 HashiCorp에서 개발한 강력한 도구입니다. 비밀번호, API 키 등과 같은 민감한 정보를 안전하게 관리하는 방법을 제공합니다. Vault는 암호화된 저장소 및 액세스 정책을 사용하여 민감한 정보를 보호하고 승인된 사용자만 액세스할 수 있도록 합니다.

Golang에서 Vault 사용:
먼저 Vault를 로컬에 설치하고 Vault 서버를 시작해야 합니다. Vault 설치 및 시작 문서는 공식 웹사이트 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를 사용하면 민감한 정보를 더욱 안전하게 관리하고 승인된 사용자만 해당 정보에 액세스할 수 있도록 할 수 있습니다. 위의 코드 예제를 통해 Golang 프로젝트에 Vault를 쉽게 통합하고 민감한 정보를 보호할 수 있습니다. 이 글이 귀하의 비밀번호와 민감한 정보를 더 잘 관리하는 데 도움이 되기를 바랍니다.

위 내용은 Golang의 키 관리: Vault를 사용하여 비밀번호 저장 및 액세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.