Menambahkan tanda keamanan ke aset
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Menunjukkan cara menambahkan tanda keamanan ke aset
Contoh kode
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],[],[],[],null,["Demonstrates adding security marks to assets\n\nCode sample \n\nGo\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"io\"\n\n \tsecuritycenter \"cloud.google.com/go/securitycenter/apiv1\"\n \t\"cloud.google.com/go/securitycenter/apiv1/securitycenterpb\"\n \t\"google.golang.org/genproto/protobuf/field_mask\"\n )\n\n // addSecurityMarks adds/updates the security marks for the assetName.\n // Specifically, it sets \"key_a\" and \"key_b\" to \"value_a\" and \"value_b\"\n // respectively. assetName is the resource path for an asset.\n func addSecurityMarks(w io.Writer, assetName string) error {\n \t// Specify the value of 'assetName' in one of the following formats:\n \t// \t\tassetName := \"organizations/{org_id}/assets/{asset_id}\"\n \t//\t\tassetName := \"projects/{project_id}/assets/{asset_id}\"\n \t//\t\tassetName := \"folders/{folder_id}/assets/{asset_id}\"\n \t// Instantiate a context and a security service client to make API calls.\n \tctx := context.Background()\n \tclient, err := securitycenter.https://cloud.google.com/go/docs/reference/cloud.google.com/go/securitycenter/latest/apiv1.html#cloud_google_com_go_securitycenter_apiv1_Client_NewClient(ctx)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"securitycenter.NewClient: %w\", err)\n \t}\n \tdefer client.https://cloud.google.com/go/docs/reference/cloud.google.com/go/securitycenter/latest/apiv1.html#cloud_google_com_go_securitycenter_apiv1_Client_Close() // Closing the client safely cleans up background resources.\n\n \treq := &securitycenterpb.UpdateSecurityMarksRequest{\n \t\t// If not set or empty, all marks would be cleared before\n \t\t// adding the new marks below.\n \t\tUpdateMask: &field_mask.FieldMask{\n \t\t\tPaths: []string{\"marks.key_a\", \"marks.key_b\"},\n \t\t},\n \t\tSecurityMarks: &securitycenterpb.SecurityMarks{\n \t\t\tName: fmt.Sprintf(\"%s/securityMarks\", assetName),\n \t\t\t// Note keys correspond to the last part of each path.\n \t\t\tMarks: map[string]string{\"key_a\": \"value_a\", \"key_b\": \"value_b\"},\n \t\t},\n \t}\n \tupdatedMarks, err := client.UpdateSecurityMarks(ctx, req)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"UpdateSecurityMarks: %w\", err)\n \t}\n\n \tfmt.Fprintf(w, \"Updated marks: %s\\n\", updatedMarks.Name)\n \tfor k, v := range updatedMarks.Marks {\n \t\tfmt.Fprintf(w, \"%s = %s\\n\", k, v)\n \t}\n \treturn nil\n\n }\n\nJava\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n static SecurityMarks addToAsset(String assetName) {\n try (SecurityCenterClient client = SecurityCenterClient.create()) {\n // Specify the value of 'assetName' in one of the following formats:\n // String assetName = \"organizations/{org-id}/assets/{asset-id}\";\n // String assetName = \"projects/{project-id}/assets/{asset-id}\";\n // String assetName = \"folders/{folder-id}/assets/{asset-id}\";\n //\n // Start setting up a request to add security marks for an asset.\n ImmutableMap markMap = ImmutableMap.of(\"key_a\", \"value_a\", \"key_b\", \"value_b\");\n\n // Add security marks and field mask for security marks.\n SecurityMarks securityMarks =\n SecurityMarks.newBuilder()\n .setName(assetName + \"/securityMarks\")\n .putAllMarks(markMap)\n .build();\n FieldMask updateMask =\n FieldMask.newBuilder().addPaths(\"marks.key_a\").addPaths(\"marks.key_b\").build();\n\n UpdateSecurityMarksRequest request =\n UpdateSecurityMarksRequest.newBuilder()\n .setSecurityMarks(securityMarks)\n .setUpdateMask(updateMask)\n .build();\n\n // Call the API.\n SecurityMarks response = client.updateSecurityMarks(request);\n\n System.out.println(\"Security Marks:\");\n System.out.println(response);\n return response;\n } catch (IOException e) {\n throw new RuntimeException(\"Couldn't create client.\", e);\n }\n }\n\nNode.js\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n // Imports the Google Cloud client library.\n const {SecurityCenterClient} = require('https://cloud.google.com/nodejs/docs/reference/security-center/latest/overview.html');\n\n // Creates a new client.\n const client = new https://cloud.google.com/nodejs/docs/reference/security-center/latest/overview.html();\n\n async function addSecurityMarks() {\n // assetName is the full resource path for the asset to update.\n /*\n * TODO(developer): Uncomment the following lines\n */\n // Specify the value of 'assetName' in one of the following formats:\n // `organizations/${org-id}/assets/${asset-id}`;\n // `projects/${project-id}/assets/${asset-id}`;\n // `folders/${folder-id}/assets/${asset-id}`;\n // const assetName = \"organizations/123123342/assets/12312321\";\n const [newMarks] = await client.updateSecurityMarks({\n securityMarks: {\n name: `${assetName}/securityMarks`,\n marks: {key_a: 'value_a', key_b: 'value_b'},\n },\n // Only update the marks with these keys.\n updateMask: {paths: ['marks.key_a', 'marks.key_b']},\n });\n\n console.log('New marks: %', newMarks);\n }\n addSecurityMarks();\n\nPython\n\n\nTo authenticate to Security Command Center, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n from google.cloud import securitycenter\n from google.protobuf import field_mask_pb2\n\n # Create a new client.\n client = securitycenter.SecurityCenterClient()\n\n # 'asset_name' is the resource path for an asset that exists in SCC.\n # Specify the value of 'asset_name' in one of the following formats:\n # f\"organizations/{org_id}/assets/{asset_id}\"\n # f\"projects/{project_id}/assets/{asset_id}\"\n # f\"folders/{folder_id}/assets/{asset_id}\"\n # asset_name = organizations/123123342/assets/12312321\n marks_name = f\"{asset_name}/securityMarks\"\n\n # Notice the suffix after \"marks.\" in the field mask matches the keys\n # in marks.\n field_mask = field_mask_pb2.FieldMask(paths=[\"marks.key_a\", \"marks.key_b\"])\n marks = {\"key_a\": \"value_a\", \"key_b\": \"value_b\"}\n\n updated_marks = client.https://cloud.google.com/python/docs/reference/securitycenter/latest/google.cloud.securitycenter_v1.services.security_center.SecurityCenterClient.html#google_cloud_securitycenter_v1_services_security_center_SecurityCenterClient_update_security_marks(\n request={\n \"security_marks\": {\"name\": marks_name, \"marks\": marks},\n \"update_mask\": field_mask,\n }\n )\n print(updated_marks)\n\nWhat's next\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=securitycenter)."]]