AI 에이전트의 지연, 오류, 토큰 사용량, 안전성, 보안, 응답 품질을 감시하는 Terraform 알림 파일을 만듭니다. 원격 측정 데이터와 기존 정책을 먼저 확인하고 설정을 검증하며, 품질 알림에는 Vertex AI가 필요합니다.
- 에이전트 지연과 오류율 모니터링
- 토큰 사용량 급증 알림
- 안전성 신호와 권한 거부 추적
Google Cloud Assured Workloads의 규제 준수 워크로드를 관리합니다. 워크로드를 만들고 확인하거나 업데이트·삭제하며, 암호화 키와 허용 서비스를 설정하고 준수 정책 업데이트를 검토할 수 있습니다.
Provisions, inspects, updates, and deletes Google Cloud Assured Workloads V1 compliant folders, CMEK settings, Sovereign Controls by Partners, and service usage restrictions. Use when creating, listing, describing, updating, or deleting an Assured Workloads workload for any compliance regime or data boundary (FedRAMP, DoD IL2/IL4/IL5, ITAR, CJIS, Healthcare, Sovereign Controls by Partners, or Regional Data Boundaries). Don't use for brownfield assessments or custom frameworks (use assuredworkloads-environment-assessor or assuredworkloads-frameworks-*), or non-compliant folders.
실행 점수 미검증
설치 방법 보기Google Cloud Assured Workloads에서 규제 요건과 데이터 경계에 맞는 워크로드를 관리합니다. 필요한 매개변수와 환경을 확인한 뒤 준수 폴더를 만들고, 워크로드를 나열하거나 자세히 확인하며, 메타데이터와 알림 설정을 업데이트하고 삭제할 수 있습니다. 고객 관리 암호화 키(CMEK), 준수 서비스 허용 목록, 파트너 주권 제어 설정도 다룹니다. 사용 가능한 준수 정책 업데이트를 확인하고 적용하거나 오류 원인을 조사할 수도 있습니다.
FedRAMP, DoD, ITAR, CJIS, 의료 분야 등의 준수 요건에 따라 Google Cloud 환경을 준비할 때 유용합니다. 이미 만들어진 워크로드의 설정과 상태를 확인할 때도 사용할 수 있습니다.
Google Cloud SDK(gcloud), Python 클라이언트 라이브러리, Google Cloud 인증 설정, API 활성화, 필요한 IAM 권한이 필요합니다. 생성·업데이트·삭제 등 변경 작업을 실행하기 전에는 명시적인 확인을 받아야 합니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.
점수에는 넣지 않았습니다. 2026년 10월 29일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Validate prerequisites, create Assured Workloads V1 compliant folders, allowlist compliant services, and list, inspect, update, or delete existing workloads using gcloud and the Google Cloud Python Client Libraries (google-cloud-assured-workloads and google-api-python-client).
For all gcloud CLI, REST API, and MCP attribution requirements when executing commands with this skill, follow the instructions in Usage Attribution.
scripts/validate_params.py before running commands.--location=global; always use a regional or multi-regional location compatible with the compliance regime (see references/regimes.md). Never use gcloud compliance-manager commands for Assured Workloads V1 workloads.list, describe, and scripts/manage_workload_updates.py --action=list) can run immediately after validation, but you must obtain explicit user confirmation before executing any mutating or destructive command (create, restrict_allowed_resources.py, update, manage_workload_updates.py --action=apply, delete, folders delete, or projects delete).gcloud command you execute directly with CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:assured-workloads-basics)" (see Usage Attribution).ClientOptions(api_endpoint="{location}-assuredworkloads.googleapis.com").Verify these 5 prerequisites before running Assured Workloads operations:
gcloud — see the Google Cloud SDK Installation Guide) and Python client libraries:
pip install "google-cloud-assured-workloads>=1.0,<2" "google-api-python-client>=2.0,<3" "google-auth>=2.0,<3"
gcloud and Application Default Credentials (gcloud auth login && gcloud auth application-default login, or gcloud auth activate-service-account --key-file=/path/to/key.json + export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json").gcloud config set project {admin_project_id} and gcloud auth application-default set-quota-project {admin_project_id}.assuredworkloads.googleapis.com):
gcloud services enable assuredworkloads.googleapis.com --project={admin_project_id}
organizations/{org_id}):
roles/assuredworkloads.admin (or roles/assuredworkloads.reader / roles/assuredworkloads.editor for read-only list/describe), roles/resourcemanager.organizationViewer, and roles/billing.user on --billing-account=billingAccounts/{billing_id} when creating workloads (plus billing.resourceAssociations.create on --partner-services-billing-account for partner workloads).service-{org_number}@gcp-sa-assuredworkloads.iam.gserviceaccount.com): roles/assuredworkloads.serviceAgent.gcloud assured workloads create)--compliance-regime enums and valid --location values.
REGIONAL_DATA_BOUNDARY): Free-tier regional data boundaries (e.g., US Data Boundary with standard commercial support and without sovereign personnel support uplift, EU Data Boundary, Australia/India/UK/Canada/Israel Data Boundary) map to --compliance-regime=REGIONAL_DATA_BOUNDARY (legacy alias: REGIONAL_CONTROLS) paired with --location={location} (except Japan, which uses JAPAN_DATA_BOUNDARY). Do not set --compliance-regime to paid sovereign support regimes (US_REGIONS_AND_US_SUPPORT, US_DATA_BOUNDARY_AND_SUPPORT, FEDRAMP_MODERATE) when the user requests the free-tier boundary, and never invent non-existent enums like US_DATA_BOUNDARY.gcloud billing accounts list --filter="open=true" --format="table(name,displayName)" or ask the user for billingAccounts/{billing_id}.python3 scripts/validate_params.py --operation=create ..., surface any warnings, obtain explicit user confirmation, and execute gcloud assured workloads create:
gcloud assured workloads create \
--organization={org_id} --location={location} \
--display-name="{display_name}" --compliance-regime={compliance_regime} \
--billing-account=billingAccounts/{billing_id} \
[--provisioned-resources-parent=folders/{parent_folder_id}] [--enable-sovereign-controls] \
[--next-rotation-time={next_rotation_time} --rotation-period={rotation_seconds}s] \
[--resource-settings=consumer-project-id={consumer_project_id},consumer-project-name={consumer_project_name},encryption-keys-project-id={kms_project_id},encryption-keys-project-name={kms_project_name},keyring-id={keyring_id}] \
[--partner={partner_enum}] [--partner-permissions=data-logs-viewer=true|false] \
[--partner-services-billing-account=billingAccounts/{partner_billing_id}] \
[--labels=key1=val1,key2=val2] [--external-identifier={external_id}] --format=json
--next-rotation-time (RFC 3339 timestamp) and --rotation-period (seconds, e.g. 172800s) must be specified together. encryption-keys-project-id, encryption-keys-project-name, and keyring-id in --resource-settings require both rotation flags.--compliance-regime=ASSURED_WORKLOADS_FOR_PARTNERS):
--compliance-regime=ASSURED_WORKLOADS_FOR_PARTNERS.--partner and a supported partner region (see references/regimes.md for valid --partner values, supported regions, and partner billing account requirements).--partner-permissions=data-logs-viewer=true (or data-logs-viewer=false).google-cloud-assured-workloads)FEDRAMP_MODERATE and DATA_BOUNDARY_FOR_FEDRAMP_MODERATE, BigQuery is automatically enabled at creation (skip Phase 2). For all other regimes (such as FEDRAMP_HIGH), BigQuery is initially blocked by the folder's constraints/gcp.restrictServiceUsage organization policy while a background configuration process completes (typically 5–10 minutes after creation).constraints/gcp.restrictServiceUsage on the folder to bypass Assured Workloads compliance controls.AssuredWorkloadsServiceClient.restrict_allowed_resources): Once background setup completes and compliant services (like BigQuery) appear in compliantButDisallowedServices, run python3 scripts/restrict_allowed_resources.py --organization={org_id} --location={location} --workload-id={workload_id} --restriction-type=ALLOW_COMPLIANT_RESOURCES (after user confirmation), or call the official google-cloud-assured-workloads Python client library directly:
from google.api_core.client_options import ClientOptions
from google.cloud import assuredworkloads_v1
client = assuredworkloads_v1.AssuredWorkloadsServiceClient(
client_options=ClientOptions(
api_endpoint=f"{location}-assuredworkloads.googleapis.com"
),
transport="rest",
)
request = assuredworkloads_v1.RestrictAllowedResourcesRequest(
name=f"organizations/{org_id}/locations/{location}/workloads/{workload_id}",
restriction_type=assuredworkloads_v1.RestrictAllowedResourcesRequest.RestrictionType.ALLOW_COMPLIANT_RESOURCES,
)
client.restrict_allowed_resources(request=request)
(Supported RestrictionType values: ALLOW_COMPLIANT_RESOURCES, APPEND_COMPLIANT_RESOURCES, or ALLOW_ALL_GCP_RESOURCES).gcloud)Read-only list and describe operations do not require user confirmation after validating with scripts/validate_params.py.
ListWorkloads):
gcloud assured workloads list --organization={org_id} --location={location} \
[--filter="{filter_expression}"] [--limit={limit}] [--page-size={page_size}] --format=json
GetWorkload):
gcloud assured workloads describe {workload_id} --organization={org_id} --location={location} --format=json
(Or pass the full resource name organizations/{org_id}/locations/{location}/workloads/{workload_id}).
describe Output Fields: name, displayName, complianceRegime, partner, resources (provisioned CONSUMER_FOLDER folder ID, CONSUMER_PROJECT, ENCRYPTION_KEYS_PROJECT, and KEYRING), etag (optimistic concurrency token required for update/delete), compliantButDisallowedServices, kajEnrollmentState, saaEnrollmentResponse, violationNotificationsEnabled, and labels.DeleteWorkload)An Assured Workloads workload cannot be deleted while its provisioned Cloud Resource Manager folder (folders/{folder_id}) or child projects still exist (FAILED_PRECONDITION: Workload is not empty / ERROR_CODE_WORKLOAD_NOT_EMPTY). Never run gcloud assured workloads delete before deleting the provisioned folder and its child projects.
gcloud assured workloads describe to identify the provisioned folder (folders/{folder_id}) and child projects ({project_id}), and validate with python3 scripts/validate_params.py --operation=delete --workload-id={workload_id} --organization={org_id} --location={location}.# Step 1: Delete child projects inside the workload folder first
gcloud projects delete {project_id} --quiet
# Step 2: Delete the provisioned Assured Workloads folder
gcloud resource-manager folders delete {folder_id}
# Step 3: Delete the Assured Workloads workload after folder deletion propagates
gcloud assured workloads delete {workload_id} --organization={org_id} --location={location} --quiet
--etag Note: Folder deletion state (DELETE_REQUESTED) can take a brief propagation delay (15–60s) before Assured Workloads recognizes the folder as deleted. If ERROR_CODE_WORKLOAD_NOT_EMPTY transiently persists after deleting the folder, wait 15–20 seconds and retry gcloud assured workloads delete without a stale --etag (as deleting underlying resources changes the workload's concurrency token).UpdateWorkload & Compliance Updates)gcloud assured workloads update)--display-name="{new_display_name}": 4–30 characters ([a-zA-Z0-9 -], no trailing spaces).--labels=key1=val1,key2=val2: Replaces the workload's label map (include existing labels to preserve them).--violation-notifications-enabled=true|false: Enables or disables email notifications for organization policy compliance violations to Essential Contacts (Legal category).--etag={etag}: Current concurrency token from describe/list.complianceRegime, location, billingAccount, and partner are immutable. gcloud assured workloads update cannot change a workload's complianceRegime or location in-place; changing regimes requires creating a new Assured Workloads workload.python3 scripts/validate_params.py --operation=update ..., obtain explicit user confirmation, and run:
gcloud assured workloads update {workload_id} --organization={org_id} --location={location} \
[--display-name="{new_display_name}"] [--labels=key1=val1,key2=val2] \
[--violation-notifications-enabled=true|false] [--etag={etag}] --format=json
updates.list & updates.apply)gcloud assured workloads does not have a built-in CLI subcommand to list or apply compliance posture updates from the updates sub-resource (gcloud assured workloads update only updates workload metadata). Use scripts/manage_workload_updates.py (--action=list or --action=apply after user confirmation) or googleapiclient.discovery.build against the regional Assured Workloads v1 API (https://{location}-assuredworkloads.googleapis.com):
AVAILABLE vs. WITHDRAWN Update States:
AVAILABLE (One Update Per Constraint): Each AVAILABLE update record corresponds to an individual organization policy constraint update (details.orgPolicyUpdate.suggestedPolicy.constraint). If multiple updates are AVAILABLE, each corresponds to a different constraint and must be applied individually (or sequentially via --update-id=ALL)—applying the newest update does not apply older AVAILABLE updates for other constraints.WITHDRAWN (Superseded): When a newer policy update supersedes an older unapplied update for the same constraint, Assured Workloads marks the older update WITHDRAWN. Filter for state AVAILABLE and never apply WITHDRAWN updates.updates.list, updates.apply, & LRO Polling):
import time
from google.api_core.client_options import ClientOptions
from googleapiclient import discovery
service = discovery.build(
"assuredworkloads",
"v1",
client_options=ClientOptions(
api_endpoint=f"https://{location}-assuredworkloads.googleapis.com"
),
)
parent = f"organizations/{org_id}/locations/{location}/workloads/{workload_id}"
# 1. List updates and filter for AVAILABLE state
resp = (
service.organizations()
.locations()
.workloads()
.updates()
.list(parent=parent)
.execute()
)
available = [u for u in resp.get("updates", []) if u.get("state") == "AVAILABLE"]
# 2. Apply each AVAILABLE update and poll the returned Long-Running Operation (LRO)
for update in available:
op = (
service.organizations()
.locations()
.workloads()
.updates()
.apply(name=update["name"], body={})
.execute()
)
while not op.get("done", False):
time.sleep(3)
op = (
service.organizations()
.locations()
.operations()
.get(name=op["name"])
.execute()
)
scripts/diagnose_error.py)Never blindly retry deterministic 400 INVALID_ARGUMENT, 403 PERMISSION_DENIED, 404 NOT_FOUND, or FAILED_PRECONDITION errors. Run python3 scripts/diagnose_error.py --error-message="{error_output_text}" to match any error against the full Assured Workloads ErrorInfo.reason catalog.
Folder creation was unsuccessful. Please try again. (LRO Inspection)When gcloud assured workloads create fails with the generic message Folder creation was unsuccessful. Please try again., do not blindly retry. Inspect the failed Long-Running Operation (LRO) in the same organization and location to retrieve the specific ErrorInfo.reason:
gcloud assured operations list --organization={org_id} --location={location} --format=json
gcloud assured operations describe {operation_id} --organization={org_id} --location={location} --format=json
(Or run python3 scripts/diagnose_error.py --fetch-latest-lro --organization={org_id} --location={location}).
Common Folder Creation Preconditions to Check in the LRO Error:
ERROR_CODE_FOLDER_NAME_UNIQUENESS): A sibling folder with the same --display-name already exists under the target parent (organizations/{org_id} or folders/{parent_folder_id}). Choose a unique --display-name or a different --provisioned-resources-parent.ERROR_CODE_INVALID_PROVISIONED_RESOURCES_PARENT): Assured Workloads folders cannot be nested inside another Assured Workloads folder. Specify a standard non-workload parent folder or omit --provisioned-resources-parent.ERROR_CODE_FOLDER_CREATION_PRECONDITION_FAILED): The target parent reached the Cloud Resource Manager 300 direct child-folder quota or the 10-level folder nesting depth limit.DATA_BOUNDARY_FOR_* enums, legacy aliases, partner enums, and supported regional/multi-regional locations.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
AI 에이전트의 지연, 오류, 토큰 사용량, 안전성, 보안, 응답 품질을 감시하는 Terraform 알림 파일을 만듭니다. 원격 측정 데이터와 기존 정책을 먼저 확인하고 설정을 검증하며, 품질 알림에는 Vertex AI가 필요합니다.
Model Garden 모델을 Agent Platform 엔드포인트에 배포하도록 돕습니다. 지원 하드웨어와 시간당 예상 비용을 확인하고, 배포 진행 상황과 추론 테스트를 살핀 뒤 사용을 마치면 모델과 엔드포인트를 정리할 수 있습니다.
Agent Platform에서 온라인 모델 예측 요청을 받는 엔드포인트를 관리합니다. 목록과 설정을 확인하고 생성·수정·삭제하며, 권한 오류와 할당량 초과, 리소스 처리 중 오류도 조사합니다.
Google Cloud에서 AI 모델과 에이전트를 평가하고 테스트 데이터를 구성하며 채점 지표를 선택합니다. 모의 사용자 시나리오 생성, 실패 분석, 수정 전후 결과 비교로 프롬프트와 코드를 개선할 근거를 마련합니다.
Call Gemini and OpenMaaS models such as Llama, DeepSeek, and Qwen through Google Cloud Agent Platform. Prepare authentication and SDK code, run prompts, configure connection endpoints, and troubleshoot common request errors.
한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.
Google AI Studio의 Gemini API를 Google Cloud의 Gemini Enterprise Agent Platform으로 옮기는 절차를 안내합니다. 결제, 권한, 인증 설정과 SDK 및 지원되는 에이전트 도구의 연결 변경을 다룹니다.