प्रमाणपत्र व्यवस्थापक भूमिका - 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 — यही आप बनाते हैं)-
api_group_element— एक regex पथ और HTTP विधियों को परिभाषित करता है (उदा.,POST /api/config/.*/certificates)। सिस्टम-प्रबंधित; आप इन्हें बना, संशोधित या हटा नहीं सकते। -
api_group—api_group_elementसंदर्भों का एक नामित संग्रह, कार्यात्मक क्षेत्र के अनुसार व्यवस्थित। सिस्टम-प्रबंधित; आप इन्हें बना, संशोधित या हटा नहीं सकते। समूहves-io-proxy-readयाf5xc-waap-standard-adminजैसे नामकरण नियमों का उपयोग करते हैं। -
role— एक ऐरे मेंapi_groupनामों को संदर्भित करता है। यही एकमात्र स्तर है जो आप बनाते हैं। विशिष्टapi_groupsको किसी भूमिका से जोड़ने के लिए कस्टम भूमिका एंडपॉइंट्स का उपयोग करें।
HTTP Load Balancers के लिए प्रमाणपत्र संचालन अन्य प्रॉक्सी-संबंधित संसाधनों (HTTP Load
Balancers, रूट्स, ऑरिजिन, आदि) के साथ ves-io-proxy-* api_groups में बंडल किए गए हैं।
कोई स्वतंत्र केवल-प्रमाणपत्र api_groups नहीं हैं — प्लेटफ़ॉर्म अनुमतियों को व्यक्तिगत
संसाधन प्रकार के बजाय कार्यात्मक क्षेत्र के अनुसार व्यवस्थित करता है।
दायरा और सीमाएं
Section titled “दायरा और सीमाएं”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इंस्टॉल हों
अपने एनवायरनमेंट वेरिएबल सेट करें:
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 ऑब्जेक्ट्स की सूची बनाएं और प्रॉक्सी-संबंधित
प्रविष्टियों को फ़िल्टर करें (जिनमें प्रमाणपत्र अनुमतियां शामिल हैं):
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 नामों को संदर्भित करता है।
प्रॉक्सी संसाधनों (प्रमाणपत्रों और प्रमाणपत्र श्रृंखलाओं सहित) तक पठन और लेखन पहुंच के साथ कस्टम भूमिका बनाएं:
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
संलग्न हैं:
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
एंडपॉइंट का उपयोग करें:
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: भूमिका हटाएं (वैकल्पिक)”हटाने के लिए मानक भूमिका एंडपॉइंट का उपयोग करें:
curl -s -X DELETE \ -H "Authorization: APIToken ${F5XC_API_TOKEN}" \ "${F5XC_API_URL}/api/web/namespaces/system/roles/example-cert-admin"API संदर्भ
Section titled “API संदर्भ”भूमिका एंडपॉइंट्स (कस्टम — 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 एंडपॉइंट की सूची देखें और अपने संसाधन से संबंधित तत्वों को खोजें:
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]'