이 가이드에서는 Secret Manager 보안 비밀에 태그를 만들고 관리하는 방법을 설명합니다. 태그를 사용하여 관련 Secret Manager 보안 비밀을 그룹화하고 태그를 기준으로 리소스에 대한 메타데이터를 저장할 수 있습니다.
태그 정보
태그는Google Cloud내에서 리소스에 연결할 수 있는 키-값 쌍입니다. 태그를 사용하면 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 예를 들어 리소스에 특정 태그가 있는지 여부에 따라 Identity and Access Management(IAM) 역할을 조건부로 부여할 수 있습니다. 자세한 내용은 태그 개요를 참고하세요.
값을 Google Cloud 리소스에 연결하는 태그 바인딩 리소스를 만들어 태그를 리소스에 연결합니다.
필수 권한
태그를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음의 IAM 역할을 부여해 달라고 요청합니다.
- 태그 뷰어(
roles/resourcemanager.tagViewer) - 태그가 연결된 리소스 - 조직 수준에서 태그를 보고 관리하는 데 필요한 권한:
조직 뷰어(
roles/resourcemanager.organizationViewer) - 조직 -
태그 정의 생성, 업데이트, 삭제에 필요한 권한:
태그 관리자(
roles/resourcemanager.tagAdmin) - 태그를 생성, 업데이트 또는 삭제할 리소스 - 리소스에 태그를 연결하고 삭제하는 데 필요한 권한:
태그 사용자(
roles/resourcemanager.tagUser) - 태그 값과 해당 태그 값을 연결하거나 삭제하는 리소스
역할 부여 방법에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Secret Manager 보안 비밀에 태그를 연결하려면 Secret Manager 관리자 역할 (roles/secretmanager.admin)이 필요합니다.
태그 키 및 값 만들기
태그를 연결하려면 먼저 태그를 만들고 값을 구성해야 합니다. 자세한 내용은 태그 만들기 및 태그 값 추가를 참고하세요.
리소스 생성 중에 태그 추가
보안 비밀을 만들 때 태그를 추가할 수 있습니다. 이렇게 하면 리소스에 필수 메타데이터를 제공할 수 있으며 더 나은 구성, 비용 추적, 자동화된 정책 적용이 가능합니다.
콘솔
- Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
- 새 보안 비밀을 만드는 옵션을 선택합니다.
- 태그 관리를 클릭합니다.
- 조직이 태그 관리 패널에 표시되지 않으면 태그 범위 선택을 클릭하고 조직 또는 프로젝트를 선택합니다.
- 태그 추가를 클릭합니다.
- 목록에서 태그 키와 태그 값을 선택합니다. 키워드를 사용하여 목록을 필터링할 수 있습니다.
- 저장을 클릭합니다. 태그 섹션이 태그 정보로 업데이트됩니다.
- 보안 비밀을 만듭니다. 새 보안 비밀은 제공된 태그로 생성됩니다.
gcloud
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 고유 식별자입니다.
- TAG_KEY: 연결된 태그 키의 영구 ID 또는 네임스페이스 이름입니다(예:
tagKeys/567890123456). - TAG_VALUE: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:
tagValues/567890123456).
태그를 쉼표로 구분하여 여러 태그를 지정합니다(예: TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2).
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
Windows(PowerShell)
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
Windows(cmd.exe)
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- SECRET_ID: 보안 비밀의 고유 식별자
- TAGKEY_NAME: 연결된 태그 키의 영구 ID 또는 네임스페이스 이름(예:
tagKeys/567890123456) - TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:
tagValues/567890123456).
HTTP 메서드 및 URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
JSON 요청 본문:
{
"replication": {
"automatic": {}
},
"tags": {
"TAGKEY_NAME": "TAGVALUE_NAME"
}
}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-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?secretId=SECRET_ID"
PowerShell
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
성공 상태 코드(2xx)와 빈 응답을 받게 됩니다.
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 범위로 인증해야 합니다.
기존 리소스에 태그 추가
기존 보안 비밀에 태그를 추가하려면 다음 단계를 따르세요.
콘솔
- Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
- 태그를 연결할 보안 비밀을 선택합니다.
- 태그를 클릭합니다.
- 조직이 태그 패널에 표시되지 않으면 범위 선택을 클릭합니다. 조직을 선택하고 열기를 클릭합니다.
- 태그 추가를 클릭합니다.
- 목록에서 태그 키와 태그 값을 선택합니다. 키워드를 사용하여 목록을 필터링할 수 있습니다.
- 저장을 클릭합니다.
- 확인 대화상자에서 확인을 클릭하여 태그를 연결합니다.
태그가 업데이트되었음을 확인하는 알림이 표시됩니다.
gcloud
보안 비밀에 태그를 연결하려면 gcloud resource-manager tags bindings create 명령어를 사용하여 태그 바인딩 리소스를 만들어야 합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:tagValues/567890123456).RESOURCE_ID는 리소스 유형 (//secretmanager.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/secrets/SECRET_ID에 연결하려면 전체 ID는//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
Windows(PowerShell)
gcloud resource-manager tags bindings create ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID
Windows(cmd.exe)
gcloud resource-manager tags bindings create ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID
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 범위로 인증해야 합니다.
리소스에 연결된 태그 나열
보안 비밀에 직접 연결되거나 리소스에서 상속한 태그 바인딩 목록을 볼 수 있습니다.
콘솔
- Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
- 태그는 보안 비밀의 태그 열에 표시됩니다.
gcloud
리소스에 연결된 태그 바인딩 목록을 가져오려면 gcloud resource-manager tags bindings list 명령어를 사용합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
RESOURCE_ID는 리소스 유형 (//secretmanager.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/secrets/SECRET_ID에 연결하려면 전체 ID는//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID
Windows(PowerShell)
gcloud resource-manager tags bindings list ` --parent=RESOURCE_ID
Windows(cmd.exe)
gcloud resource-manager tags bindings list ^ --parent=RESOURCE_ID
다음과 비슷한 응답이 표시됩니다.
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz
리소스에서 태그 분리
보안 비밀에 직접 연결된 태그를 분리할 수 있습니다. 상속된 태그는 동일한 키와 다른 값으로 태그를 연결하여 재정의할 수 있지만 분리할 수는 없습니다.
콘솔
- Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
- 태그를 삭제할 비밀을 선택합니다.
- 태그를 클릭합니다.
- 태그 패널에서 분리하려는 태그 옆에 있는 항목 삭제를 클릭합니다.
- 저장을 클릭합니다.
- 확인 대화상자에서 확인을 클릭하여 태그를 분리합니다.
태그가 업데이트되었음을 확인하는 알림이 표시됩니다.
gcloud
태그 바인딩을 삭제하려면 gcloud resource-manager tags bindings delete 명령어를 사용합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
TAGVALUE_NAME: 연결된 태그 값의 영구 ID 또는 네임스페이스 이름입니다(예:tagValues/567890123456).RESOURCE_ID는 리소스 유형 (//secretmanager.googleapis.com/)을 식별하는 API 도메인 이름을 포함한 리소스의 전체 ID입니다. 예를 들어 태그를/projects/PROJECT_ID/secrets/SECRET_ID에 연결하려면 전체 ID는//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
Windows(PowerShell)
gcloud resource-manager tags bindings delete ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID
Windows(cmd.exe)
gcloud resource-manager tags bindings delete ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID
태그 키 및 값 삭제
태그 키 또는 값 정의를 삭제할 때는 태그가 보안 비밀에서 분리되었는지 확인하세요. 태그 정의 자체를 삭제하기 전에 태그 바인딩이라는 기존 태그 연결을 삭제해야 합니다. 자세한 내용은 태그 삭제를 참조하세요.
Identity and Access Management 조건 및 태그
태그와 IAM 조건을 사용하여 계층 구조 내 사용자에게 역할 바인딩을 조건부로 부여할 수 있습니다. 리소스에 연결된 태그를 변경하거나 삭제하면 조건부 역할 바인딩이 포함된 IAM 정책이 적용되는 경우 해당 리소스에 대한 사용자 액세스 권한이 삭제될 수 있습니다. 자세한 내용은 Identity and Access Management 조건 및 태그를 참조하세요.
다음 단계
- 태그를 지원하는 다른 서비스 참조하기
- IAM에서 태그를 사용하는 방법은 태그 및 액세스 제어 참조하기