mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-14 22:03:11 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-containe
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Az - Container Instances
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Основна інформація
|
||||
|
||||
**Azure Container Instances (ACI)** - це безсерверний контейнерний сервіс, який дозволяє швидко запускати окремі контейнери без управління будь-якою підлягаючою інфраструктурою. **Azure Container Apps (ACA)** розширює це, пропонуючи повністю кероване середовище для запуску мікросервісів та веб-додатків з такими функціями, як автоматичне масштабування на основі подій, вбудована інтеграція Dapr та підтримка складних сценаріїв оркестрації. **Container App Jobs** - це спеціалізована функція в ACA, призначена для виконання короткочасних, пакетних або запланованих завдань, які виконуються протягом обмеженого часу, а потім завершуються.
|
||||
|
||||
Відмінності:
|
||||
- ACI ідеально підходить для **простих**, автономних контейнерних навантажень, де потрібно мінімальне оркестрування.
|
||||
- ACA найкраще підходить для створення масштабованих, взаємопов'язаних мікросервісів з розширеними функціями, такими як автоматичне масштабування та виявлення сервісів.
|
||||
- Container App Jobs зосереджуються на **разових або запланованих завданнях**, забезпечуючи спрощений спосіб виконання фонових або пакетних завдань у середовищі ACA.
|
||||
|
||||
### Конфігурації
|
||||
|
||||
Спеціальні опції для **ACI**:
|
||||
- Щодо мережі, можна вибрати один з цих 3 варіантів:
|
||||
- **Public** (за замовчуванням)
|
||||
- **Private** (доступний лише з VNet)
|
||||
- **None** (без мережевого доступу)
|
||||
|
||||
Спеціальні опції для **ACA**:
|
||||
- Можна **обмежити трафік** до контейнера в середовищі контейнерного додатку або залишити його публічним.
|
||||
- Можна використовувати **зовнішнього постачальника ідентичності** (Microsoft, Facebook, Google та Twitter) для аутентифікації.
|
||||
- Можна **зберігати секрети додатку** (в чистому тексті або як посилання на сховище, призначаючи MI з доступом до нього).
|
||||
- Можна мати **версії та репліки додатку**.
|
||||
- Можна розгортати з конкретного **джерела коду або артефакту** замість використання контейнера. Для джерела коду потрібно надати доступ до GitHub. Для артефактів можна завантажити їх після створення додатку.
|
||||
|
||||
Спеціальні опції для **завдань**:
|
||||
- Тип тригера може бути **ручним, запланованим або на основі подій** (наприклад, при надходженні повідомлення в чергу).
|
||||
|
||||
Загальні опції:
|
||||
- Для створення контейнера можна використовувати публічний образ, образ контейнера з Azure Container Registry або зовнішнього репозиторію, що може **вимагати налаштування пароля** для доступу до нього.
|
||||
- Це означає, що конфігурація контейнера може містити чутливу інформацію.
|
||||
- Також можна налаштувати загальні налаштування docker, такі як:
|
||||
- **Змінні середовища** (перевірте на чутливу інформацію)
|
||||
- **Томи** (навіть з Azure Files)
|
||||
- **Порти** для відкриття
|
||||
- **Обмеження CPU та пам'яті**
|
||||
- **Політика перезапуску**
|
||||
- **Запуск з привілейованими правами**
|
||||
- Перезаписати **командний рядок контейнерів для виконання та аргументи** (може бути змінено також у існуючих контейнерах)
|
||||
- ...
|
||||
|
||||
## Перерахування
|
||||
|
||||
> [!WARNING]
|
||||
> Під час перерахування ви можете виявити чутливі конфігурації, такі як **змінні середовища**, **мережеві деталі** або **керовані ідентичності**.
|
||||
```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}}
|
||||
Reference in New Issue
Block a user