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

This commit is contained in:
Translator
2025-02-25 22:30:56 +00:00
parent c6b3c7c831
commit cb166d5f4a
@@ -0,0 +1,117 @@
# 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가지 옵션 중 하나를 선택할 수 있습니다:
- **공용** (기본값)
- **사설** (VNet에서만 접근 가능)
- **없음** (네트워크 접근 없음)
**ACA**에 대한 특별 옵션:
- 컨테이너에 대한 **트래픽을 제한**하거나 공용으로 남길 수 있습니다.
- 인증을 위해 **외부 ID 공급자**(Microsoft, Facebook, Google, Twitter)를 사용할 수 있습니다.
- **앱 비밀**을 저장할 수 있습니다 (앱의 일반 텍스트 또는 MI에 대한 접근 권한을 부여하여 금고에 대한 링크로).
- **앱의 수정 및 복제본**을 가질 수 있습니다.
- 컨테이너를 사용하지 않고 특정 **소스 코드 또는 아티팩트**에서 배포할 수 있습니다. 소스 코드의 경우 GitHub에 대한 접근 권한이 부여되어야 합니다. 아티팩트의 경우 앱을 생성한 후 업로드할 수 있습니다.
**작업**에 대한 특별 옵션:
- 트리거 유형은 **수동, 예약 또는 이벤트 기반**(예: 큐에 메시지가 도착하는 경우)일 수 있습니다.
공통 옵션:
- 컨테이너를 생성하기 위해 공용 이미지, Azure Container Registry의 컨테이너 이미지 또는 외부 리포지토리를 사용할 수 있으며, 이 경우 **접근을 위한 비밀번호를 구성해야 할 수 있습니다**.
- 이는 컨테이너의 구성이 민감한 정보를 포함할 수 있음을 의미합니다.
- 또한 다음과 같은 일반 도커 설정을 구성할 수 있습니다:
- **환경 변수** (민감한 정보 확인)
- **볼륨** (Azure Files에서조차)
- **노출할 포트**
- **CPU 및 메모리 한도**
- **재시작 정책**
- **특권으로 실행**
- 컨테이너의 **명령줄 및 인수 덮어쓰기** (기존 컨테이너에서도 수정 가능)
- ...
## 열거
> [!WARNING]
> 열거할 때 **환경 변수**, **네트워크 세부정보** 또는 **관리 ID**와 같은 민감한 구성을 노출할 수 있습니다.
```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}}