रनटाइम की सुरक्षा से जुड़ी अहम जानकारी

1. परिचय

इस लैब में, आपको Cloud Run और GKE (जीकेई) क्लस्टर में एक ऐप्लिकेशन डिप्लॉय करना होगा. साथ ही, सॉफ़्टवेयर डिलीवरी शील्ड सिक्योरिटी में डिप्लॉयमेंट के लिए सुरक्षा से जुड़ी अहम जानकारी दिखेगी

आपको इनके बारे में जानकारी मिलेगी

  • Artifact Registry की सुरक्षा से जुड़ी अहम जानकारी
  • Cloud Run की सुरक्षा से जुड़ी अहम जानकारी
  • GKE (जीकेई) सिक्योरिटी पॉस्चर

2. सेटअप और ज़रूरी शर्तें

Cloud प्रोजेक्ट का सेटअप

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. इसके अलावा, खुद भी आज़माया जा सकता है और देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद इसे बदला नहीं जा सकता और प्रोजेक्ट के कुल समय तक बना रहेगा.
  • आपकी जानकारी के लिए, एक तीसरी वैल्यू यानी प्रोजेक्ट नंबर है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, संसाधनों को बंद करने के लिए कि आपको बिलिंग न करनी पड़े. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या पूरा प्रोजेक्ट मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

एनवायरमेंट का सेटअप

खोज बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell को चालू करें.

ecdc43ada29e91b.png

Cloud Shell से, इस लैब के लिए ज़रूरी एपीआई चालू करें:

gcloud services enable run.googleapis.com \
  cloudbuild.googleapis.com \
  artifactregistry.googleapis.com \
  container.googleapis.com \
  containersecurity.googleapis.com

अनुमति देने के लिए पूछे जाने पर, "अनुमति दें" पर क्लिक करें जारी रखने के लिए.

6356559df3eccdda.png

इससे इस टेक्स्ट जैसा एक मैसेज दिखेगा:

Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.

एसिंक्रोनस तरीके से GKE (जीकेई) क्लस्टर बनाने के लिए निर्देश चलाएं. इसे बाद में लैब में इस्तेमाल किया जाएगा:

gcloud beta container clusters create gke-cluster \
    --zone us-central1-a \
    --async

3. आवेदन तैयार करें

सबसे पहले, आपको एक सामान्य एक्सप्रेस-आधारित Node.js ऐप्लिकेशन बनाना होगा, जो एचटीटीपी अनुरोधों का जवाब देगा.

Cloud Shell में starter-nodejs नाम की नई डायरेक्ट्री बनाएं. इसके बाद, उस डायरेक्ट्री में बदलाव करें:

mkdir starter-nodejs
cd starter-nodejs

नीचे दिए गए निर्देशों का पालन करके, package.json फ़ाइल बनाएं:

cat > ./package.json << EOF
{
  "name": "cloudrun-starter-app",
  "version": "1.0.0",
  "description": "Node.js Starter Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}
EOF

ऊपर दी गई फ़ाइल में एक स्टार्ट स्क्रिप्ट निर्देश और एक्सप्रेस वेब ऐप्लिकेशन फ़्रेमवर्क पर निर्भरता है.

इसके बाद, उसी डायरेक्ट्री में, नीचे दिए गए निर्देशों की मदद से index.js फ़ाइल बनाएं:

cat > ./index.js << EOF
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Received a request.');
  res.send("Hello Cloud Run!");
});

const port = process.env.PORT || 8080;

app.listen(port, () => {
  console.log('Listening on port', port);
});
EOF

यह कोड एक बेसिक वेब सर्वर बनाता है, जो PORT एनवायरमेंट वैरिएबल के ज़रिए तय किए गए पोर्ट पर ध्यान देता है. आपके ऐप्लिकेशन का काम अब पूरा हो गया है. अब इसे कंटेनर बनाया जा सकता है और डिप्लॉय किया जा सकता है.

4. क्लाउड रन ऐप्लिकेशन डिप्लॉय करें

अपने ऐप्लिकेशन को डिप्लॉय करने के लिए, नीचे दिया गया निर्देश चलाएं:

gcloud run deploy starter-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --max-instances=3

Artifact Registry का डेटा स्टोर करने की जगह बनाने की पुष्टि करना:

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created.

Do you want to continue (Y/n)? y

5. Artifact Registry और Cloud Build की सुरक्षा से जुड़ी अहम जानकारी

बिल्ड पूरा होने में कुछ मिनट लगेंगे.

Cloud Build खोलें और नए बिल्ड के लिए बिल्ड आर्टफ़ैक्ट की समीक्षा करें.

Google Cloud Console के Cloud Build के यूज़र इंटरफ़ेस (यूआई) में सॉफ़्टवेयर डिलीवरी शील्ड के सुरक्षा से जुड़ी अहम जानकारी वाला पैनल होता है. यह बिल्ड से जुड़ी सुरक्षा की जानकारी दिखाता है. जैसे, एसएलएसए लेवल, डिपेंडेंसी में किसी तरह की जोखिम, और बिल्ड का मूल स्रोत.

7d9fd2213f3704c4.png

बनाई गई कंटेनर इमेज के लिए, सुरक्षा से जुड़ी अहम जानकारी की समीक्षा करें. Artifact Registry में, इस इमेज के जोखिम की आशंकाओं की जानकारी देखने के लिए, स्कैन किए गए आर्टफ़ैक्ट के लिंक पर जाएं.

Cloud Shell कंसोल पर वापस जाएं और पुष्टि करें कि Cloud Run ऐप्लिकेशन का डिप्लॉयमेंट पूरा हो गया है.

Done.
Service [starter-app] revision [starter-app-00001-maw] has been deployed and is serving 100 percent of traffic.
Service URL: https://starter-app-nin5jpgefq-uc.a.run.app

6. Cloud Run की सुरक्षा से जुड़ी अहम जानकारी

Cloud Run में एक सुरक्षा पैनल (झलक) होता है, जो सॉफ़्टवेयर सप्लाई चेन की सुरक्षा से जुड़ी अहम जानकारी दिखाता है. जैसे, एसएलएसए बिल्ड लेवल के अनुपालन की जानकारी, बिल्ड का मूल स्रोत, और मौजूदा सेवाओं में मिलने वाले जोखिम की आशंकाएं.

Cloud Run खोलें और REVISIONS / सुरक्षा टैब में जाकर, सुरक्षा से जुड़ी अहम जानकारी देखें.

62a9f5d26207e58e.png

यह पैनल निम्न जानकारी दिखाता है:

  • पहचान और एन्क्रिप्शन: डिफ़ॉल्ट Compute Engine सेवा खाते का ईमेल पता और डिप्लॉयमेंट के लिए इस्तेमाल की गई एन्क्रिप्शन कुंजी.
  • एसएलएसए लेवल: यह बिल्ड एसएलएसए लेवल 3 पर है, जो एसएलएसए स्पेसिफ़िकेशन के मुताबिक सॉफ़्टवेयर बिल्ड प्रोसेस के मैच्योरिटी लेवल की पहचान करता है
  • कमज़ोरियां: ऐप्लिकेशन डिपेंडेंसी में पाई जाने वाली कोई भी जोखिम की आशंका.
  • बिल्ड की जानकारी: बिल्ड की जानकारी, जैसे कि बिल्डर और लॉग देखने के लिए लिंक.
  • बिल्ड का मूल स्रोत: बिल्ड के लिए उद्गम, जो किसी बिल्ड के बारे में पुष्टि किए जा सकने वाले मेटाडेटा का कलेक्शन है. इसमें बनाई गई इमेज की गतिविधियों का ब्यौरा, इनपुट सोर्स की जगहें, बिल्ड टूलचेन, बिल्ड के चरण, और बिल्ड की अवधि जैसी जानकारी शामिल होती है.

7. GKE (जीकेई) सिक्योरिटी पॉस्चर

GKE (जीकेई), आपके कंटेनर की सुरक्षा स्थिति का आकलन कर सकता है. साथ ही, क्लस्टर की सेटिंग, वर्कलोड कॉन्फ़िगरेशन, और जोखिम की आशंकाओं के बारे में सक्रिय दिशा-निर्देश दे सकता है. इसमें सिक्योरिटी पॉस्चर डैशबोर्ड (झलक) शामिल है. यह आपके GKE (जीकेई) क्लस्टर और वर्कलोड को स्कैन करता है, ताकि आपको अपनी सुरक्षा को बेहतर बनाने के लिए राय और कार्रवाई करने वाले सुझाव दिए जा सकें.

अगले चरणों में, आपको इस ऐप्लिकेशन को GKE (जीकेई) क्लस्टर में डिप्लॉय करना होगा. साथ ही, GKE (जीकेई) सिक्योरिटी पॉस्चर डैशबोर्ड में, सुरक्षा से जुड़ी अहम जानकारी की समीक्षा करेगा.

नीचे दिए गए कमांड को चलाकर पुष्टि करें कि क्लस्टर तैयार है:

gcloud beta container clusters list

आउटपुट का उदाहरण:

NAME: gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.24.9-gke.3200
MASTER_IP: 34.29.226.228
MACHINE_TYPE: e2-medium
NODE_VERSION: 1.24.9-gke.3200
NUM_NODES: 3
STATUS: RUNNING

GKE (जीकेई) क्लस्टर के लिए क्रेडेंशियल और कॉन्फ़िगरेशन पाएं:

gcloud container clusters get-credentials gke-cluster  \
    --region=us-central1-a

पिछले चरण में बनाई गई इमेज का इस्तेमाल करके, ऐप्लिकेशन डिप्लॉय करने के लिए निर्देश चलाएं:

export PROJECT_ID=$(gcloud config get-value project)

kubectl run starter-app \
  --image us-central1-docker.pkg.dev/${PROJECT_ID}/cloud-run-source-deploy/starter-app:latest \
  --port 8080

आम तौर पर, GKE (जीकेई) का वर्कलोड ऐसा मज़बूत कॉन्फ़िगरेशन होना चाहिए जो उनके हमले की जगह को सीमित करता हो. कॉन्फ़िगरेशन से जुड़ी समस्याओं का पता लगाने के लिए, सभी क्लस्टर में वर्कलोड की जांच करना बड़े पैमाने पर मैन्युअल तरीके से करना मुश्किल हो सकता है. सिक्योरिटी पॉस्चर डैशबोर्ड की मदद से, अपने सभी क्लस्टर में अपने-आप चल रहे वर्कलोड के कॉन्फ़िगरेशन को अपने-आप स्कैन किया जा सकता है. साथ ही, सुरक्षा को बेहतर बनाने के लिए, काम के नतीजे, स्कोर किए गए नतीजे, और राय के आधार पर सुझाव दिए जा सकते हैं.

वर्कलोड कॉन्फ़िगरेशन को स्कैन करने की सुविधा चालू करें:

gcloud beta container clusters update gke-cluster \
    --region=us-central1-a \
    --enable-workload-config-audit

वर्कलोड कॉन्फ़िगरेशन को स्कैन करने के अलावा, वर्कलोड के जोखिम की आशंका को स्कैन करने की सुविधा को चालू किया जा सकता है. साथ ही, सिक्योरिटी पॉस्चर डैशबोर्ड में नतीजों की समीक्षा की जा सकती है. यह ऐसी सुविधाओं का एक सेट है जो आपके GKE (जीकेई) क्लस्टर और वर्कलोड की सुरक्षा को बेहतर बनाने के लिए राय और सुझाव देती है.

GKE (जीकेई), आपके GKE (जीकेई) क्लस्टर में चलने वाले हर मंज़ूरी वाले पॉड में, कंटेनर इमेज को अपने-आप स्कैन करता है. ऐसा, NIST जैसे सार्वजनिक सीवीई डेटाबेस के जोखिम की आशंका से जुड़े डेटा का इस्तेमाल करके, जोखिम की आशंकाओं का पता लगाने के लिए किया जाता है.

अगर आपके कंटेनर की इमेज में जोखिम की आशंका का पता चलता है, तो GKE (जीकेई) उसे गंभीरता रेटिंग देता है. साथ ही, वह नतीजों को Google Cloud कंसोल के सिक्योरिटी पॉस्चर डैशबोर्ड में दिखाता है. GKE (जीकेई), क्लाउड लॉगिंग में एंट्री भी जोड़ता है, ताकि इन्हें ऑडिट किया जा सके और उन्हें ट्रेस किया जा सके.

वर्कलोड के जोखिम की आशंका को स्कैन करने की सुविधा चालू करें:

gcloud beta container clusters update gke-cluster \
    --region=us-central1-a \
    --enable-workload-vulnerability-scanning \
    --async

GKE (जीकेई) सुरक्षा स्थिति पेज खोलें.

वर्कलोड ऑडिट पूरा होने तक कुछ मिनट इंतज़ार करें. इसके बाद, नतीजों की समीक्षा करें.

5b1b8158bc55ce67.png

कॉन्फ़िगरेशन से जुड़ी समस्याओं और उन वर्कलोड की समीक्षा करें जिन पर असर पड़ा है.

58e6f4b6d8eaa99a.png

सिक्योरिटी पॉस्चर डैशबोर्ड का इस्तेमाल क्यों करना चाहिए

सिक्योरिटी पॉस्चर डैशबोर्ड, सुरक्षा से जुड़े बुनियादी उपाय है. इसे ज़रूरी शर्तें पूरी करने वाले किसी भी GKE (जीकेई) क्लस्टर के लिए चालू किया जा सकता है. Google Cloud, इन वजहों से आपके सभी क्लस्टर में सिक्योरिटी पॉस्चर डैशबोर्ड का इस्तेमाल करने का सुझाव देता है:

  • कम से कम रुकावटें: सुविधाओं की वजह से, वर्कलोड में कोई रुकावट नहीं आएगी.
  • कार्रवाई करने लायक सुझाव: उपलब्ध होने पर, सिक्योरिटी पॉस्चर डैशबोर्ड के पास ऐक्शन आइटम होते हैं, ताकि समस्याओं को ठीक किया जा सके. इन कार्रवाइयों में, चलाए जा सकने वाले निर्देश, कॉन्फ़िगरेशन में किए जाने वाले बदलावों के उदाहरण, और जोखिम की आशंका को दूर करने के बारे में सलाह शामिल होती है.
  • विज़ुअलाइज़ेशन: सिक्योरिटी पॉस्चर डैशबोर्ड, आपके पूरे प्रोजेक्ट के क्लस्टर पर असर डालने वाली समस्याओं का हाई-लेवल विज़ुअलाइज़ेशन देता है. साथ ही, इसमें आपकी प्रोग्रेस और हर समस्या के संभावित असर को दिखाने वाले चार्ट और ग्राफ़ शामिल होते हैं.
  • राय वाले नतीजे: GKE (जीकेई), Google की सुरक्षा टीमों की विशेषज्ञता और इंडस्ट्री स्टैंडर्ड के आधार पर, समस्याओं का पता लगाने के लिए उन्हें गंभीरता की रेटिंग देता है.
  • ऑडिट किए जा सकने वाले इवेंट लॉग: GKE (जीकेई), लोगों से जुड़ी उन सभी समस्याओं को लॉग करने की सेटिंग में जोड़ता है जिनके बारे में हमें पता चला है. ऐसा इसलिए किया जाता है, ताकि रिपोर्ट को बेहतर तरीके से दिखाया जा सके और उनके बारे में पता लगाया जा सके.

8. बधाई हो!

बधाई हो! आपने कोडलैब पूरा कर लिया है.

हमने इन विषयों के बारे में बताया:

  • Cloud Run और GKE (जीकेई) पर चल रहे आर्टफ़ैक्ट और ऐप्लिकेशन से जुड़ी सुरक्षा से जुड़ी अहम जानकारी

व्यवस्थित करें

इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते पर शुल्क न लगे. इसके लिए, उस प्रोजेक्ट को मिटा दें जिसमें संसाधन शामिल हैं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.

प्रोजेक्ट मिटाया जा रहा है

बिलिंग हटाने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाए गए प्रोजेक्ट को मिटाना है.

पिछला अपडेट: 21/3/23