mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-containe
This commit is contained in:
@@ -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}}
|
||||
Reference in New Issue
Block a user