इसे छोड़कर कंटेंट पर जाएं

प्रमाणपत्र व्यवस्थापक भूमिका - API

यह गाइड F5 Distributed Cloud में एक कस्टम RBAC भूमिका बनाने की प्रक्रिया बताता है जो HTTP Load Balancers द्वारा उपयोग किए जाने वाले SSL/TLS प्रमाणपत्रों और प्रमाणपत्र श्रृंखलाओं को प्रबंधित करने की अनुमति प्रदान करता है। UI-आधारित दृष्टिकोण के लिए, सरलीकृत कंसोल गाइड देखें।

F5 XC RBAC कैसे काम करता है

Section titled “F5 XC RBAC कैसे काम करता है”

F5 XC तीन-स्तरीय अनुमति मॉडल का उपयोग करता है:

api_group_element (केवल-पठन, सिस्टम-परिभाषित)
api_group (केवल-पठन, सिस्टम-परिभाषित)
role (पूर्ण CRUD — यही आप बनाते हैं)
  1. api_group_element — एक regex पथ और HTTP विधियों को परिभाषित करता है (उदा., POST /api/config/.*/certificates)। सिस्टम-प्रबंधित; आप इन्हें बना, संशोधित या हटा नहीं सकते।

  2. api_groupapi_group_element संदर्भों का एक नामित संग्रह, कार्यात्मक क्षेत्र के अनुसार व्यवस्थित। सिस्टम-प्रबंधित; आप इन्हें बना, संशोधित या हटा नहीं सकते। समूह ves-io-proxy-read या f5xc-waap-standard-admin जैसे नामकरण नियमों का उपयोग करते हैं।

  3. role — एक ऐरे में api_group नामों को संदर्भित करता है। यही एकमात्र स्तर है जो आप बनाते हैं। विशिष्ट api_groups को किसी भूमिका से जोड़ने के लिए कस्टम भूमिका एंडपॉइंट्स का उपयोग करें।

HTTP Load Balancers के लिए प्रमाणपत्र संचालन अन्य प्रॉक्सी-संबंधित संसाधनों (HTTP Load Balancers, रूट्स, ऑरिजिन, आदि) के साथ ves-io-proxy-* api_groups में बंडल किए गए हैं। कोई स्वतंत्र केवल-प्रमाणपत्र api_groups नहीं हैं — प्लेटफ़ॉर्म अनुमतियों को व्यक्तिगत संसाधन प्रकार के बजाय कार्यात्मक क्षेत्र के अनुसार व्यवस्थित करता है।

ves-io-proxy-read और ves-io-proxy-write api_groups सभी प्रॉक्सी-संबंधित संसाधनों तक पहुंच प्रदान करते हैं, न कि केवल प्रमाणपत्रों तक। इस भूमिका वाला उपयोगकर्ता HTTP Load Balancers, ऑरिजिन, रूट्स और अन्य प्रॉक्सी-स्कोप्ड ऑब्जेक्ट्स को भी प्रबंधित कर सकता है।

F5 XC पर केवल-प्रमाणपत्र RBAC संभव नहीं है। api_group और api_group_element दोनों सिस्टम-परिभाषित, केवल-पठन ऑब्जेक्ट्स हैं — API इनके लिए केवल GET एंडपॉइंट्स उजागर करता है। भूमिकाएं केवल मौजूदा api_group नामों को संदर्भित कर सकती हैं, और विशेष रूप से प्रमाणपत्रों तक सीमित कोई api_group नहीं है।

शमन — नेमस्पेस अलगाव: प्रमाणपत्र संसाधनों के लिए एक समर्पित नेमस्पेस बनाएं और example-cert-admin भूमिका को केवल उस नेमस्पेस तक सीमित करके असाइन करें। उपयोगकर्ता के पास प्रॉक्सी-स्तरीय अनुमतियां रहती हैं लेकिन वह अन्य नेमस्पेस में संसाधनों तक नहीं पहुंच सकता, जिससे व्यापक api_group दायरे का प्रभाव क्षेत्र सीमित हो जाता है।

पूर्वापेक्षाएं

Section titled “पूर्वापेक्षाएं”
  • व्यवस्थापक विशेषाधिकारों वाला एक F5 XC API टोकन
  • curl और jq इंस्टॉल हों

अपने एनवायरनमेंट वेरिएबल सेट करें:

Terminal window
export F5XC_TENANT="your-tenant"
export F5XC_API_URL="https://${F5XC_TENANT}.console.ves.volterra.io"
export F5XC_API_TOKEN="your-api-token"

चरण 1: प्रॉक्सी API समूहों की खोज करें

Section titled “चरण 1: प्रॉक्सी API समूहों की खोज करें”

सभी सिस्टम-परिभाषित api_group ऑब्जेक्ट्स की सूची बनाएं और प्रॉक्सी-संबंधित प्रविष्टियों को फ़िल्टर करें (जिनमें प्रमाणपत्र अनुमतियां शामिल हैं):

Terminal window
curl -s \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
"${F5XC_API_URL}/api/web/namespaces/shared/api_groups" \
| jq '[.items[] | select(.name | test("ves-io-proxy")) | .name] | sort'

अपेक्षित आउटपुट:

[
"ves-io-proxy-app-firewall-read",
"ves-io-proxy-app-firewall-write",
"ves-io-proxy-monitor-read",
"ves-io-proxy-monitor-write",
"ves-io-proxy-read",
"ves-io-proxy-security-read",
"ves-io-proxy-security-write",
"ves-io-proxy-waf-read",
"ves-io-proxy-waf-write",
"ves-io-proxy-write"
]

प्रमाणपत्र प्रबंधन के लिए, प्रासंगिक समूह हैं:

API समूहप्रदान करता है
ves-io-proxy-readप्रमाणपत्रों सहित प्रॉक्सी संसाधनों तक पठन पहुंच
ves-io-proxy-writeप्रमाणपत्रों सहित प्रॉक्सी संसाधनों तक लेखन पहुंच

चरण 2: कस्टम भूमिका बनाएं

Section titled “चरण 2: कस्टम भूमिका बनाएं”

कस्टम भूमिका निर्माण एंडपॉइंट का उपयोग करें। api_groups ऐरे चरण 1 में खोजे गए सिस्टम-परिभाषित api_group नामों को संदर्भित करता है।

प्रॉक्सी संसाधनों (प्रमाणपत्रों और प्रमाणपत्र श्रृंखलाओं सहित) तक पठन और लेखन पहुंच के साथ कस्टम भूमिका बनाएं:

Terminal window
curl -s -X POST \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
-H "Content-Type: application/json" \
"${F5XC_API_URL}/api/web/custom/namespaces/system/roles" \
-d '{
"metadata": {
"name": "example-cert-admin",
"namespace": "system"
},
"spec": {},
"api_groups": [
"ves-io-proxy-read",
"ves-io-proxy-write"
]
}'

चरण 3: भूमिका सत्यापित करें

Section titled “चरण 3: भूमिका सत्यापित करें”

कस्टम GET एंडपॉइंट का उपयोग करके भूमिका प्राप्त करें और पुष्टि करें कि api_groups संलग्न हैं:

Terminal window
curl -s \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
"${F5XC_API_URL}/api/web/custom/namespaces/system/roles/example-cert-admin" \
| jq '{name: .object.metadata.name, api_groups: .api_groups}'

अपेक्षित आउटपुट:

{
"name": "example-cert-admin",
"api_groups": [
"ves-io-proxy-read",
"ves-io-proxy-write"
]
}

चरण 4: भूमिका अपडेट करें (वैकल्पिक)

Section titled “चरण 4: भूमिका अपडेट करें (वैकल्पिक)”

किसी मौजूदा भूमिका में api_groups जोड़ने या हटाने के लिए, कस्टम PUT एंडपॉइंट का उपयोग करें:

Terminal window
curl -s -X PUT \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
-H "Content-Type: application/json" \
"${F5XC_API_URL}/api/web/custom/namespaces/system/roles/example-cert-admin" \
-d '{
"name": "example-cert-admin",
"namespace": "system",
"spec": {},
"api_groups": [
"ves-io-proxy-read"
]
}'

यह उदाहरण ves-io-proxy-write को हटाकर भूमिका को केवल-पठन पहुंच तक डाउनग्रेड करता है।

चरण 5: भूमिका हटाएं (वैकल्पिक)

Section titled “चरण 5: भूमिका हटाएं (वैकल्पिक)”

हटाने के लिए मानक भूमिका एंडपॉइंट का उपयोग करें:

Terminal window
curl -s -X DELETE \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
"${F5XC_API_URL}/api/web/namespaces/system/roles/example-cert-admin"

भूमिका एंडपॉइंट्स (कस्टम — api_groups शामिल)

Section titled “भूमिका एंडपॉइंट्स (कस्टम — api_groups शामिल)”

भूमिकाएं हमेशा system नेमस्पेस में होती हैं।

विधिपथविवरण
POST/api/web/custom/namespaces/system/rolesकस्टम भूमिका बनाएं
GET/api/web/custom/namespaces/system/rolesकस्टम भूमिकाओं की सूची
GET/api/web/custom/namespaces/system/roles/{name}कस्टम भूमिका प्राप्त करें
PUT/api/web/custom/namespaces/system/roles/{name}कस्टम भूमिका बदलें

भूमिका एंडपॉइंट्स (मानक)

Section titled “भूमिका एंडपॉइंट्स (मानक)”
विधिपथविवरण
DELETE/api/web/namespaces/system/roles/{name}भूमिका हटाएं
GET/api/web/namespaces/system/roles/{name}भूमिका प्राप्त करें
GET/api/web/namespaces/system/rolesभूमिकाओं की सूची

खोज एंडपॉइंट्स (केवल-पठन)

Section titled “खोज एंडपॉइंट्स (केवल-पठन)”

खोज shared नेमस्पेस का उपयोग करती है।

विधिपथविवरण
GET/api/web/namespaces/shared/api_groupsसभी api_groups की सूची
GET/api/web/namespaces/shared/api_group_elementsसभी api_group_elements की सूची

प्रमाणपत्र एंडपॉइंट्स (भूमिका किस तक पहुंच प्रदान करती है)

Section titled “प्रमाणपत्र एंडपॉइंट्स (भूमिका किस तक पहुंच प्रदान करती है)”

{namespace} को उस नेमस्पेस से बदलें जहां आपके प्रमाणपत्र प्रबंधित किए जाते हैं।

विधिपथविवरण
POST/api/config/namespaces/{namespace}/certificatesप्रमाणपत्र बनाएं
GET/api/config/namespaces/{namespace}/certificatesप्रमाणपत्रों की सूची
GET/api/config/namespaces/{namespace}/certificates/{name}प्रमाणपत्र प्राप्त करें
PUT/api/config/namespaces/{namespace}/certificates/{name}प्रमाणपत्र बदलें
DELETE/api/config/namespaces/{namespace}/certificates/{name}प्रमाणपत्र हटाएं
POST/api/config/namespaces/{namespace}/certificate_chainsप्रमाणपत्र श्रृंखला बनाएं
GET/api/config/namespaces/{namespace}/certificate_chainsप्रमाणपत्र श्रृंखलाओं की सूची
GET/api/config/namespaces/{namespace}/certificate_chains/{name}प्रमाणपत्र श्रृंखला प्राप्त करें
PUT/api/config/namespaces/{namespace}/certificate_chains/{name}प्रमाणपत्र श्रृंखला बदलें
DELETE/api/config/namespaces/{namespace}/certificate_chains/{name}प्रमाणपत्र श्रृंखला हटाएं

api_group और api_group_element केवल-पठन क्यों हैं

Section titled “api_group और api_group_element केवल-पठन क्यों हैं”

ये ऑब्जेक्ट्स F5 XC द्वारा सिस्टम-परिभाषित हैं। प्लेटफ़ॉर्म प्रत्येक API पथ के लिए api_group_element प्रविष्टियां पूर्व-निर्मित करता है और उन्हें कार्यात्मक क्षेत्र के अनुसार व्यवस्थित api_group ऑब्जेक्ट्स में समूहित करता है।

आपको इन्हें बनाने की आवश्यकता नहीं है — ये सिस्टम में प्रत्येक संसाधन के लिए पहले से मौजूद हैं। आपका कार्य प्रासंगिक समूह नामों की खोज करना (चरण 1) और अपनी कस्टम भूमिका में उन्हें संदर्भित करना (चरण 2) है।

यह देखने के लिए कि कोई api_group कौन से व्यक्तिगत API पथ कवर करता है, api_group_elements एंडपॉइंट की सूची देखें और अपने संसाधन से संबंधित तत्वों को खोजें:

Terminal window
curl -s \
-H "Authorization: APIToken ${F5XC_API_TOKEN}" \
"${F5XC_API_URL}/api/web/namespaces/shared/api_group_elements" \
| jq '[.items[] | select(.name | test("ves-io-schema-certificate")) | .name]'