Translated ['src/pentesting-cloud/azure-security/az-services/az-containe

This commit is contained in:
Translator
2025-02-25 22:31:04 +00:00
parent 64f0438356
commit e98a1645c9

View File

@@ -0,0 +1,116 @@
# Az - Container Instances
{{#include ../../../banners/hacktricks-training.md}}
## Basic Information
**Azure Container Instances (ACI)** एक सर्वरलेस कंटेनर सेवा है जो आपको बिना किसी अंतर्निहित बुनियादी ढांचे का प्रबंधन किए व्यक्तिगत कंटेनरों को तेजी से चलाने की अनुमति देती है। **Azure Container Apps (ACA)** इसे बढ़ाता है, जो माइक्रोसर्विसेज और वेब ऐप्स को चलाने के लिए एक पूरी तरह से प्रबंधित वातावरण प्रदान करता है, जिसमें इवेंट-ड्रिवन ऑटोस्केलिंग, अंतर्निहित Dapr एकीकरण, और जटिल ऑर्केस्ट्रेशन परिदृश्यों के लिए समर्थन जैसी सुविधाएँ शामिल हैं। **Container App Jobs** ACA के भीतर एक विशेष विशेषता है जो सीमित अवधि के लिए निष्पादित होने वाले अल्पकालिक, बैच, या अनुसूचित कार्यों को चलाने के लिए डिज़ाइन की गई है और फिर बाहर निकल जाती है।
Differences:
- ACI **सरल**, स्वतंत्र कंटेनर कार्यभार के लिए आदर्श है जहाँ न्यूनतम ऑर्केस्ट्रेशन की आवश्यकता होती है।
- ACA स्केलेबल, आपस में जुड़े माइक्रोसर्विसेज बनाने के लिए सबसे उपयुक्त है जिसमें ऑटोस्केलिंग और सेवा खोज जैसी उन्नत सुविधाएँ शामिल हैं।
- Container App Jobs **एक बार या अनुसूचित कार्यों** पर ध्यान केंद्रित करते हैं, जो ACA वातावरण के भीतर बैकग्राउंड या बैच कार्यों को चलाने का एक सुव्यवस्थित तरीका प्रदान करते हैं।
### Configurations
**ACI** के लिए विशेष विकल्प:
- नेटवर्किंग के संबंध में, इनमें से 3 विकल्पों में से एक का चयन करना संभव है:
- **Public** (डिफ़ॉल्ट)
- **Private** (केवल VNet से सुलभ)
- **None** (कोई नेटवर्क एक्सेस नहीं)
**ACA** के लिए विशेष विकल्प:
- कंटेनर के लिए ट्रैफ़िक को कंटेनर ऐप वातावरण तक सीमित करना या इसे सार्वजनिक छोड़ना संभव है।
- प्रमाणीकरण के लिए **बाहरी पहचान प्रदाता** (Microsoft, Facebook, Google, और Twitter) का उपयोग करना संभव है।
- **App secrets** को स्टोर करना संभव है (स्पष्ट पाठ में ऐप या एक वॉल्ट के लिए लिंक के रूप में, जिस पर MI के साथ एक्सेस दिया गया हो)।
- ऐप के **संशोधन और प्रतिकृतियाँ** होना संभव है।
- एक विशिष्ट **स्रोत कोड या आर्टिफैक्ट** से तैनात करना संभव है, इसके बजाय कंटेनर का उपयोग करने के। स्रोत कोड के लिए, GitHub तक पहुंच दी जानी चाहिए। आर्टिफैक्ट के लिए, ऐप बनाने के बाद इसे अपलोड करना संभव है।
**Jobs** के लिए विशेष विकल्प:
- ट्रिगर प्रकार **मैनुअल, अनुसूचित या इवेंट-आधारित** (जैसे किसी कतार में संदेश का आना) हो सकता है।
Common options:
- एक कंटेनर बनाने के लिए, एक सार्वजनिक छवि, Azure Container Registry से एक कंटेनर छवि या एक बाहरी रिपॉजिटरी का उपयोग करना संभव है, जिसे एक्सेस करने के लिए **पासवर्ड कॉन्फ़िगर करने की आवश्यकता हो सकती है**
- इसका मतलब है कि कंटेनर की कॉन्फ़िगरेशन में संवेदनशील जानकारी हो सकती है।
- सामान्य डॉकर सेटिंग्स को कॉन्फ़िगर करना भी संभव है जैसे:
- **Environment variables** (संवेदनशील जानकारी की जांच करें)
- **Volumes** (Azure Files से भी)
- **Ports** को उजागर करना
- **CPU और मेमोरी सीमाएँ**
- **Restart policy**
- **Run as privileged**
- कंटेनरों के **कमांड लाइन को ओवरराइट करना और तर्क** (मौजूदा कंटेनरों में भी संशोधित किया जा सकता है)
- ...
## Enumeration
> [!WARNING]
> जब एन्यूमरेट करते हैं, तो आप संवेदनशील कॉन्फ़िगरेशन जैसे **environment variables**, **network details**, या **managed identities** को प्रकट कर सकते हैं।
```bash
# ACI
## List all container instances in the subscription
az container list
## Show detailed information about a specific container instance
az container show --name <container-name> --resource-group <res-group>
## Fetch logs from a container
az container logs --name <container-name> --resource-group <res-group>
## Execute a command in a running container and get the output
az container exec --name <container-name> --resource-group <res-group> --exec-command "/bin/sh" # Get a shell
## Get yaml configuration of the container group
az container export --name <container-name> --resource-group <res-group> --file </path/local/file.yml>
# ACA
## List all container apps in the subscription
az containerapp list
## Show detailed information about a specific container app
az containerapp show --name <app-name> --resource-group <res-group>
## List app environments
az containerapp env list --resource-group <res-group>
## Fetch logs from a container app
az containerapp logs show --name <app-name> --resource-group <res-group>
## Get configured secrets
az containerapp secret list --name <app-name> --resource-group <res-group>
### Get value
az containerapp secret show --name <app-name> --resource-group <res-group> --secret-name <secret-name>
## Get authentication options
az containerapp auth show --name <app-name> --resource-group <res-group>
## Get a shell
az containerapp exec --name <app-name> --resource-group <res-group> --command "sh"
## Get debugging shell
az containerapp debug --name <app-name> --resource-group <res-group>
# Jobs
## List all container apps jobs in a resource group
az containerapp job list --resource-group <res-group>
## Show detailed information about a specific container app job
az containerapp job show --name <job-name> --resource-group <res-group>
## Fetch logs from a container app job
az containerapp job logs show --name <job-name> --resource-group <res-group>
## Fetch executions from a container app job
az containerapp job execution list --name <job-name> --resource-group <res-group>
az containerapp job execution show --name <job-name> --resource-group <res-group> --job-execution-name <job-execution>
## Start a job execution (for manual jobs)
az containerapp job start --name <job-name> --resource-group <res-group>
```
## विशेषाधिकार वृद्धि और पोस्ट शोषण
{{#ref}}
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}