אתם יכולים להשתמש בלקוח Python של Secret Manager עם Agent Platform Pipelines כדי לגשת לסודות שמאוחסנים ב-Secret Manager.
יצירת סוד באמצעות מסוף Google Cloud
מפעילים את Secret Manager API במסוף Google Cloud .
נכנסים לדף Secret Manager במסוף Cloud.
בדף Secret Manager, לוחצים על Create Secret (יצירת סוד).
בדף יצירת Secret, בקטע Name (שם), מזינים שם ל-Secret (לדוגמה, universe-secret).
כדי להוסיף גרסה סודית כשיוצרים את הסוד הראשוני, בשדה Secret value (ערך סודי), מזינים ערך לסוד (לדוגמה,
42).בוחרים את האזור.
לוחצים על הלחצן Create secret.
פיתוח והרצה של צינור עיבוד נתונים עם רכיבים שמבוססים על פונקציות Python
בדוגמה הבאה מוצג רכיב שמדפיס את הסוד שנוצר קודם.
נותנים לחשבון השירות שמריץ את צינור עיבוד הנתונים הרשאה ל-Secret Manager. מידע נוסף זמין בקטע 'הגדרת חשבון שירות עם הרשאות גרנולריות' במאמר הגדרת Google Cloud הפרויקט לצינורות של Agent Platform.
באמצעות Kubeflow Pipelines SDK, יוצרים צינור עיבוד נתונים פשוט עם משימה אחת.
from kfp import compiler from kfp import dsl # A simple component that prints a secret stored in Secret Manager # Be sure to specify "google-cloud-secret-manager" as one of packages_to_install @dsl.component( packages_to_install=['google-cloud-secret-manager'] ) def print_secret_op(project_id: str, secret_id: str, version_id: str) -> str: from google.cloud import secretmanager secret_client = secretmanager.SecretManagerServiceClient() secret_name = f'projects/{project_id}/secrets/{secret_id}/versions/{version_id}' response = secret_client.access_secret_version(request={"name": secret_name}) payload = response.payload.data.decode("UTF-8") answer = "The secret is: {}".format(payload) print(answer) return answer # A simple pipeline that contains a single print_secret task @dsl.pipeline( name='secret-manager-demo-pipeline') def secret_manager_demo_pipeline(project_id: str, secret_id: str, version_id: str): print_secret_task = print_secret_op(project_id, secret_id, version_id) # Compile the pipeline compiler.Compiler().compile(pipeline_func=secret_manager_demo_pipeline, package_path='secret_manager_demo_pipeline.yaml')מריצים את צינור העיבוד באמצעות Vertex AI SDK.
from google.cloud import aiplatform parameter_values = { "project_id": PROJECT_ID, "secret_id": SECRET_ID, "version_id": VERSION_ID } aiplatform.init( project=PROJECT_ID, location=REGION, ) job = aiplatform.PipelineJob( display_name=f'test-secret-manager-pipeline', template_path='secret_manager_demo_pipeline.yaml', pipeline_root=PIPELINE_ROOT, enable_caching=False, parameter_values=parameter_values ) job.submit( service_account=SERVICE_ACCOUNT )מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: Google Cloud הפרויקט שבו צינור הנתונים הזה פועל.
- SECRET_ID: מזהה הסוד שנוצר בשלבים הקודמים (לדוגמה,
universe-secret). - VERSION_ID: שם הגרסה של הסוד.
- REGION: האזור שבו הפייפליין הזה פועל.
- PIPELINE_ROOT: מציינים URI של Cloud Storage שחשבון השירות של צינורות עיבוד הנתונים יכול לגשת אליו. הארטיפקטים של הרצות צינור עיבוד הנתונים מאוחסנים בתיקיית הבסיס של צינור עיבוד הנתונים.
- SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות שיצרתם עם הרשאת Secret Manager Accessor.
בפלט של הפונקציה job.submit(), אמור להופיע קישור שאפשר ללחוץ עליו כדי לראות את ההפעלה של צינור העיבוד במסוף Google Cloud .