יצירה וגישה לסוד באמצעות Secret Manager

Google Cloudמידע נוסף על יצירה וגישה לסודות באמצעות Secret Manager


לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :

תראו לי איך


לפני שמתחילים

  1. מפעילים את Secret Manager API, פעם אחת לכל פרויקט.
  2. מקצים את התפקיד Secret Manager Admin (אדמין של Secret Manager) ‏(roles/secretmanager.admin) בפרויקט, בתיקייה או בארגון.
  3. כדי לבצע אימות ל-Secret Manager API, אפשר להשתמש באחת מהדרכים הבאות:

    • אם אתם משתמשים בספריות לקוח כדי לגשת ל-Secret Manager API, אתם צריכים להגדיר Application Default Credentials.
    • אם אתם משתמשים ב-Google Cloud CLI כדי לגשת ל-Secret Manager API, אתם צריכים להשתמש בפרטי הכניסה של Google Cloud CLI כדי לבצע אימות.
    • כדי לאמת קריאה ל-REST, משתמשים בפרטי הכניסה ל-Google Cloud CLI או ב-Application Default Credentials.

יצירת סוד וגישה לגרסת סוד

בדוגמאות הבאות מוסבר איך ליצור סוד ולגשת לתוכן של גרסת סוד.

המסוף

כדי ליצור את הסוד ואת גרסת הסוד:

  1. נכנסים לדף Secret Manager במסוף Google Cloud .

    מעבר לדף Secret Manager

  2. בדף Secret Manager, לוחצים על Create Secret (יצירת סוד).

  3. בדף יצירת Secret, בשדה שם, מזינים my-secret.

  4. בשדה ערך סודי, מזינים my super secret data.

  5. לוחצים על הלחצן Create secret.

כדי לגשת לתוכן של הגרסה הסודית:

  1. נכנסים לדף Secret Manager במסוף Google Cloud .

    מעבר לדף Secret Manager

  2. בדף Secret Manager (ניהול סודות), לוחצים על my-secret.

  3. בדף Secret details (פרטי הסוד), בטבלה Versions (גרסאות), מוצאים את גרסה 1.

  4. בעמודה פעולות, לוחצים על הצגת אפשרויות נוספות.

  5. בתפריט, לוחצים על הצגת ערך הסוד.

  6. מופיעה תיבת דו-שיח עם ערך הסוד. לוחצים על סיום כדי לסגור את תיבת הדו-שיח.

gcloud

כדי להשתמש ב-Secret Manager בשורת הפקודה, קודם צריך להתקין את Google Cloud CLI או לשדרג לגרסה 378.0.0 ואילך. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.

כדי ליצור סוד ולאחסן מחרוזת כתוכן של הגרסה הראשונה של הסוד:

$ echo -n "my super secret data" | gcloud secrets create my-secret \
    --replication-policy="replication-policy" \
    --data-file=-

כאשר replication-policy הוא automatic או user-managed.

כדי לגשת לתוכן של גרסה ספציפית של סוד:

$ gcloud secrets versions access 1 --secret="my-secret"

כדי לגשת לתוכן של הגרסה האחרונה של הסוד:

$ gcloud secrets versions access latest --secret="my-secret"

C#

כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ‎ ולהתקין את Secret Manager C# SDK. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.


using System;
using System.Text;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.SecretManager.V1;
using Google.Protobuf;

public class QuickstartSample
{
    public void Quickstart(string projectId = "my-project", string secretId = "my-secret")
    {
        // Create the client.
        SecretManagerServiceClient client = SecretManagerServiceClient.Create();

        // Build the parent project name.
        ProjectName projectName = new ProjectName(projectId);

        // Build the secret to create.
        Secret secret = new Secret
        {
            Replication = new Replication
            {
                Automatic = new Replication.Types.Automatic(),
            },
        };

        Secret createdSecret = client.CreateSecret(projectName, secretId, secret);

        // Build a payload.
        SecretPayload payload = new SecretPayload
        {
            Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8),
        };

        // Add a secret version.
        SecretVersion createdVersion = client.AddSecretVersion(createdSecret.SecretName, payload);

        // Access the secret version.
        AccessSecretVersionResponse result = client.AccessSecretVersion(createdVersion.SecretVersionName);

        // Print the results
        //
        // WARNING: Do not print secrets in production environments. This
        // snippet is for demonstration purposes only.
        string data = result.Payload.Data.ToStringUtf8();
        Console.WriteLine($"Plaintext: {data}");
    }
}

Go

כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Secret Manager Go SDK. ב-Compute Engine או ב-GKE, צריך לעבור אימות באמצעות ההיקף cloud-platform.


// Sample quickstart is a basic program that uses Secret Manager.
package main

import (
	"context"
	"fmt"
	"log"

	secretmanager "cloud.google.com/go/secretmanager/apiv1"
	"cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
)

func main() {
	// GCP project in which to store secrets in Secret Manager.
	projectID := "your-project-id"

	// Create the client.
	ctx := context.Background()
	client, err := secretmanager.NewClient(ctx)
	if err != nil {
		log.Fatalf("failed to setup client: %v", err)
	}
	defer client.Close()

	// Create the request to create the secret.
	createSecretReq := &secretmanagerpb.CreateSecretRequest{
		Parent:   fmt.Sprintf("projects/%s", projectID),
		SecretId: "my-secret",
		Secret: &secretmanagerpb.Secret{
			Replication: &secretmanagerpb.Replication{
				Replication: &secretmanagerpb.Replication_Automatic_{
					Automatic: &secretmanagerpb.Replication_Automatic{},
				},
			},
		},
	}

	secret, err := client.CreateSecret(ctx, createSecretReq)
	if err != nil {
		log