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

This commit is contained in:
Translator
2025-02-25 22:31:29 +00:00
parent 6db5469145
commit 905e1294b1

View File

@@ -0,0 +1,116 @@
# Az - Container Instances
{{#include ../../../banners/hacktricks-training.md}}
## Temel Bilgiler
**Azure Container Instances (ACI)**, temel altyapıyı yönetmeden bireysel konteynerleri hızlı bir şekilde çalıştırmanıza olanak tanıyan sunucusuz bir konteyner hizmetidir. **Azure Container Apps (ACA)**, olay odaklı otomatik ölçeklendirme, yerleşik Dapr entegrasyonu ve karmaşık orkestrasyon senaryoları desteği gibi özelliklerle mikro hizmetler ve web uygulamaları çalıştırmak için tamamen yönetilen bir ortam sunarak bunu genişletir. **Container App Jobs**, belirli bir süre boyunca çalışan ve ardından çıkan kısa ömürlü, toplu veya planlı görevleri çalıştırmak için tasarlanmış ACA içindeki özel bir özelliktir.
Farklar:
- ACI, minimum orkestrasyon gerektiren **basit**, bağımsız konteyner iş yükleri için idealdir.
- ACA, otomatik ölçeklendirme ve hizmet keşfi gibi gelişmiş özelliklere sahip ölçeklenebilir, birbirine bağlı mikro hizmetler oluşturmak için en uygun olanıdır.
- Container App Jobs, arka plan veya toplu işleri ACA ortamında çalıştırmak için düzenli bir yol sağlayarak **tek seferlik veya planlı görevler** üzerine odaklanır.
### Yapılandırmalar
**ACI** için özel seçenekler:
- Ağ ile ilgili olarak bu 3 seçenekten birini seçmek mümkündür:
- **Halka açık** (varsayılan)
- **Özel** (sadece VNet'ten erişilebilir)
- **Yok** (ağ erişimi yok)
**ACA** için özel seçenekler:
- Konteynerin trafiğini konteyner uygulama ortamına kısıtlamak veya halka açık bırakmak mümkündür.
- Kimlik doğrulama için bir **harici kimlik sağlayıcı** (Microsoft, Facebook, Google ve Twitter) kullanmak mümkündür.
- **Uygulama gizli anahtarlarını** (açık metin olarak veya bir MI ile erişim atayarak bir kasaya bağlantılar olarak) saklamak mümkündür.
- **Uygulamanın revizyonları ve kopyaları** olabilir.
- Bir konteyner kullanmak yerine belirli bir **kaynak kodu veya artefakt** üzerinden dağıtım yapmak mümkündür. Kaynak kodu için GitHub'a erişim verilmelidir. Artefaktlar için, uygulama oluşturulduktan sonra yüklenmesi mümkündür.
**Görevler** için özel seçenekler:
- Tetikleme türü **manuel, planlı veya olay tabanlı** (bir kuyruğa mesaj gelmesi gibi) olabilir.
Ortak seçenekler:
- Bir konteyner oluşturmak için halka açık bir görüntü, bir Azure Container Registry'den konteyner görüntüsü veya bir harici depo kullanmak mümkündür; bu, erişim için bir şifre yapılandırmayı **gerektirebilir**.
- Bu, konteynerin yapılandırmasının hassas bilgiler içerebileceği anlamına gelir.
- Ayrıca, aşağıdaki gibi yaygın docker ayarlarını yapılandırmak da mümkündür:
- **Çevre değişkenleri** (hassas bilgiler için kontrol edin)
- **Hacimler** (Azure Files'dan bile)
- **Açık portlar**
- **CPU ve bellek sınırları**
- **Yeniden başlatma politikası**
- **Yetkili olarak çalıştır**
- Konteynerlerin **çalıştırılacak komut satırını ve argümanlarını** geçersiz kılmak (mevcut konteynerlerde de değiştirilebilir)
- ...
## Sayım
> [!WARNING]
> Sayım yaparken, **çevre değişkenleri**, **ağ detayları** veya **yönetilen kimlikler** gibi hassas yapılandırmalarıığa çıkarabilirsiniz.
```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>
```
## Yetki Yükseltme & Sonrası İstismar
{{#ref}}
../az-privilege-escalation/az-container-instances-apps-jobs-privesc.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}