์ด ํ์ด์ง์์๋ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์์ฑ๋ ๋ณด์ ๋น๋ฐ์ ์ฌ๋ฌ ๋ค๋ฅธ ๋ชจ๋ ๋ฒ์ ๋ชฉ๋ก์ ๊ฒ์ํ๊ณ ํน์ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
ํ์ํ ์ญํ
๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋์ดํ๊ณ ๋ฒ์ ์ธ๋ถ์ ๋ณด๋ฅผ ๋ณด๊ธฐ ์ํด ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ๋ณด์ ๋น๋ฐ, ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ Secret Manager ๋ทฐ์ด (roles/secretmanager.viewer
) IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ํตํด ํ์ํ ๊ถํ์ ์ป์ ์๋ ์์ต๋๋ค.
๋ณด์ ๋น๋ฐ ๋ฒ์ ๋์ด
๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋์ดํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
-
์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ๋ณด์ ๋น๋ฐ ๋ณ๊ฒฝ ๋ฐฉ์, ๋ณ๊ฒฝํ ์ฌ๋, ๋ณ๊ฒฝ๋ ์๊ฐ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ๋ณด๋ ๊ฐ์ฌ ๋ฐ ๊ท์ ์ค์๋ฅผ ์ํด ํ์ํฉ๋๋ค.
-
๋ณด์ ๋น๋ฐ์ด ์ค์๋ก ์ ๋ฐ์ดํธ๋์๊ฑฐ๋ ์์๋ ๊ฒฝ์ฐ ์ด์ ์ ์ ์ ์ํ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค.
-
๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ์์ ํ๊ฒ ์ญ์ ํ ์ ์๋ ๋ฒ์ ์ ์๋ณํ ์ ์์ต๋๋ค.
-
๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ณด์ ๋น๋ฐ์ ์ด์ ๋ฒ์ ๋ค์ ์กฐ์ฌํ์ฌ ์ด๋ค ๋ณด์ ๋น๋ฐ ๋ณ๊ฒฝ์ฌํญ์ด ์์ธ์ง ํ์ธํ ์ ์์ต๋๋ค.
๋ณด์ ๋น๋ฐ์ ๋ชจ๋ ๋ฒ์ ์ ๋์ดํ๋ ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฝ์
-
Google Cloud ์ฝ์์์ Secret Manager ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
๋ณด์ ๋น๋ฐ์ ํด๋ฆญํ์ฌ ๋ฒ์ ์ ์ก์ธ์คํฉ๋๋ค.
๋ณด์ ๋น๋ฐ์ ์ํ ๋ฒ์ ์ด ๋ฒ์ ํ ์ด๋ธ์ ํ์๋ฉ๋๋ค.
gcloud
์๋์ ๋ช ๋ น์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- SECRET_ID: ๋ณด์ ๋น๋ฐ์ ID
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Linux, macOS ๋๋ Cloud Shell
gcloud secrets versions list SECRET_ID
Windows(PowerShell)
gcloud secrets versions list SECRET_ID
Windows(cmd.exe)
gcloud secrets versions list SECRET_ID
์๋ต์ ๋ณด์ ๋น๋ฐ์ด ํฌํจ๋ฉ๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- SECRET_ID: ๋ณด์ ๋น๋ฐ์ ID
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions
JSON ์์ฒญ ๋ณธ๋ฌธ:
{}
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions" | Select-Object -Expand Content
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "versions": [ { "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" } ], "totalSize": 1 }
C#
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ C# ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager C# SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Go
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Go ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Go SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Java
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager ์๋ฐ SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Node.js
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Node.js ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Node.js SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
PHP
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Google Cloud์์ PHP ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ณ Secret Manager PHP SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Python
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Python ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Python SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Ruby
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Ruby ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Ruby SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ํ ์ธ๋ถ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
์ด ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฒ์ ID, ์์ฑ ๋ ์ง ๋ฐ ์๊ฐ, ์ํธํ ์ธ๋ถ์ ๋ณด, ์ํ์ ๊ฐ์ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋ผ๋ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ํ ์ ๋ณด๋ง ํ์ธํ ์ ์์ผ๋ฉฐ, ์ค์ ๋ณด์ ๋น๋ฐ ๊ฐ ์์ฒด๋ฅผ ๋ณผ ์ ์๋ ๊ฒ์ ์๋๋๋ค. ๋ณด์ ๋น๋ฐ ๊ฐ์ ๋ณด๋ ค๋ฉด ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ก์ธ์ค๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฝ์
-
Google Cloud ์ฝ์์์ Secret Manager ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
๋ณด์ ๋น๋ฐ์ ํด๋ฆญํ์ฌ ๋ฒ์ ์ ์ก์ธ์คํฉ๋๋ค.
๋ณด์ ๋น๋ฐ์ ์ํ ๋ฒ์ ์ด ๋ฒ์ ํ ์ด๋ธ์ ํ์๋ฉ๋๋ค. ๊ฐ ๋ฒ์ ์ ๋ํด ๋ฒ์ ID์ ๋ฉํ๋ฐ์ดํฐ๋ ํ ์ด๋ธ์ ํ์๋ฉ๋๋ค.
gcloud
์๋์ ๋ช ๋ น์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- VERSION_ID: ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ID
- SECRET_ID: ๋ณด์ ๋น๋ฐ์ ID
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
Linux, macOS ๋๋ Cloud Shell
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
Windows(PowerShell)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
Windows(cmd.exe)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
์๋ต์ ๋ณด์ ๋น๋ฐ์ด ํฌํจ๋ฉ๋๋ค.
REST
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.
- SECRET_ID: ๋ณด์ ๋น๋ฐ์ ID
- VERSION_ID: ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ID
HTTP ๋ฉ์๋ ๋ฐ URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID
JSON ์์ฒญ ๋ณธ๋ฌธ:
{}
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID" | Select-Object -Expand Content
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
C#
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ C# ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager C# SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Go
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Go ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Go SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Java
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager ์๋ฐ SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Node.js
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Node.js ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Node.js SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
PHP
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Google Cloud์์ PHP ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ณ Secret Manager PHP SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Python
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Python ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Python SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
Ruby
์ด ์ฝ๋๋ฅผ ์คํํ๋ ค๋ฉด ๋จผ์ Ruby ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๊ณ Secret Manager Ruby SDK๋ฅผ ์ค์นํฉ๋๋ค. Compute Engine ๋๋ GKE์์๋ cloud-platform ๋ฒ์๋ก ์ธ์ฆํด์ผ ํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ณ์นญ์ ํ ๋นํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ