Translated ['src/pentesting-cloud/aws-security/aws-services/aws-sagemake

This commit is contained in:
Translator
2025-10-23 11:00:14 +00:00
parent 78f8970463
commit 9c89f0a270

View File

@@ -4,27 +4,27 @@
## 서비스 개요
Amazon SageMaker는 노트북, 학습 인프라, 오케스트레이션, 레지스트리, 관리형 엔드포인트를 하나로 연결하는 AWS의 관리형 머신러닝 플랫폼입니다. SageMaker 리소스가 침해되면 일반적으로 다음을 얻을 수 있습니다:
Amazon SageMaker는 AWS의 관리형 머신러닝 플랫폼으로, 노트북, 학습 인프라, 오케스트레이션, 레지스트리 관리형 엔드포인트를 통합합니다. SageMaker 리소스가 침해되면 일반적으로 다음을 확보할 수 있습니다:
- 광범위한 S3, ECR, Secrets Manager 또는 KMS 접근 권한을 가진 장기 실행 IAM execution roles.
- 광범위한 S3, ECR, Secrets Manager 또는 KMS 접근 권한을 가진 장기간 유효한 IAM 실행 역할.
- S3, EFS 또는 feature stores에 저장된 민감한 데이터셋에 대한 접근.
- VPC 내부의 네트워크 발판(Studio apps, training jobs, endpoints).
- 콘솔 인증을 우회하는 높은 권한의 presigned URLs.
SageMaker가 어떻게 구성되는지 이해하는 것은 pivot, persist 또는 exfiltrate data 전에 핵심입니다.
pivot, persist, 또는 데이터를 exfiltrate하기 전에 SageMaker가 어떻게 구성되는지 이해하는 것이 핵심입니다.
## 핵심 구성 요소
- **Studio Domains & Spaces**: IDE (JupyterLab, Code Editor, RStudio). 각 domain에는 공유 EFS 파일 시스템과 기본 execution role이 있습니다.
- **Notebook Instances**: 독립형 노트북을 위한 관리 EC2 인스턴스; 별도의 execution roles를 사용합니다.
- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio). 각 도메인에는 공유 EFS 파일 시스템과 기본 실행 역할이 있습니다.
- **Notebook Instances**: 독립형 노트북 관리되는 EC2 인스턴스; 별도의 실행 역할을 사용합니다.
- **Training / Processing / Transform Jobs**: ECR에서 코드를, S3에서 데이터를 가져오는 임시 컨테이너.
- **Pipelines & Experiments**: 모든 단계, 입력, 출력 등을 기술하는 오케스트레이션된 워크플로.
- **Models & Endpoints**: HTTPS endpoints를 통해 추론을 위해 배포되는 패키지화된 아티팩트.
- **Feature Store & Data Wrangler**: 데이터 준비 feature 관리를 위한 관리형 서비스.
- **Autopilot & JumpStart**: 자동화된 ML과 큐레이션된 모델 카탈로그.
- **MLflow Tracking Servers**: presigned access tokens가 있는 관리형 MLflow UI/API.
- **Pipelines & Experiments**: 모든 단계, 입력 출력을 설명하는 오케스트레이션된 워크플로.
- **Models & Endpoints**: HTTPS 엔드포인트를 통해 추론용으로 배포되는 패키지 아티팩트.
- **Feature Store & Data Wrangler**: 데이터 준비 feature 관리 관리형 서비스.
- **Autopilot & JumpStart**: 자동화된 ML 및 선별된 모델 카탈로그.
- **MLflow Tracking Servers**: presigned 액세스 토큰을 가진 관리형 MLflow UI/API.
모든 리소스는 execution role, S3 위치, 컨테이너 이미지, 선택적 VPC/KMS 구성을 참조합니다enumeration 동안 이들 모두 수집하세요.
모든 리소스는 실행 역할, S3 위치, 컨테이너 이미지 선택적 VPC/KMS 구성을 참조합니다enumeration 과정에서 이들 모두 수집하세요.
## 계정 및 전역 메타데이터
```bash
@@ -39,7 +39,7 @@ aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' -
# Generic tag sweep across any SageMaker ARN you know
aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
```
cross-account trust (execution roles or S3 buckets with external principals) 및 service control policies 또는 SCPs와 같은 기본 제한사항을 확인하고 기록하세요.
cross-account trust (execution roles or S3 buckets with external principals) 및 service control policies 또는 SCPs와 같은 기본 제한 사항을 기록하세요.
## Studio 도메인, 앱 및 공유 공간
```bash
@@ -64,10 +64,10 @@ aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <n
- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
- 마운트된 EFS (`HomeEfsFileSystemId`) 및 S3 홈 디렉터리.
- Lifecycle scripts (종종 bootstrap 자격증명이나 추가 코드의 push/pull을 포함합니다).
- Lifecycle scripts (종종 부트스트랩 자격증명이나 push/pull 추가 코드를 포함함).
> [!TIP]
> Presigned Studio URLs 광범위하게 부여면 인증을 우회할 수 있습니다.
> Presigned Studio URLs은(는) 광범위하게 권한을 부여면 인증을 우회할 수 있습니다.
## Notebook Instances & Lifecycle Configs
```bash
@@ -76,13 +76,13 @@ aws sagemaker describe-notebook-instance --notebook-instance-name <name> --regio
aws sagemaker list-notebook-instance-lifecycle-configs --region $REGION
aws sagemaker describe-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name <cfg> --region $REGION
```
노트북 메타데이터는 다음을 드러냅니다:
Notebook 메타데이터는 다음을 드러냅니다:
- 실행 역할 (`RoleArn`), 직접 인터넷 액세스 여부(또는 VPC 전용 모드).
- 실행 역할 (`RoleArn`), 직접 인터넷 액세스 또는 VPC-only 모드.
- `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess`에 있는 S3 위치.
- 자격증명 또는 persistence 후크를 위한 라이프사이클 스크립트.
- 자격 증명 또는 지속성 훅을 위한 Lifecycle 스크립트.
## 학습, 처리, 변환 및 배치 작업
## Training, Processing, Transform 및 Batch 작업
```bash
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
@@ -95,10 +95,10 @@ aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
```
면밀히 검토:
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` 어떤 ECR 이미지가 배포되었는지.
- `InputDataConfig` & `OutputDataConfig` S3 버킷, 프리픽스, 및 KMS .
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` 네트워크 또는 암호화 구성을 판단.
- `HyperParameters` 환경 비밀 또는 연결 문자열을 leak할 수 있음.
- `AlgorithmSpecification.TrainingImage` / `AppSpecification.ImageUri` 어떤 ECR images가 배포되었는지.
- `InputDataConfig` & `OutputDataConfig` S3 buckets, prefixes, 및 KMS keys.
- `ResourceConfig.VolumeKmsKeyId`, `VpcConfig`, `EnableNetworkIsolation` 네트워크 또는 암호화 포지처를 판단합니다.
- `HyperParameters` may leak 환경 비밀 또는 연결 문자열.
## 파이프라인, 실험 및 트라이얼
```bash
@@ -110,7 +110,7 @@ aws sagemaker list-experiments --region $REGION
aws sagemaker list-trials --experiment-name <experiment> --region $REGION
aws sagemaker list-trial-components --trial-name <trial> --region $REGION
```
파이프라인 정의는 각 단계, 관련 역할, 컨테이너 이미지 및 환경 변수를 상세히 기술합니다. 실험 구성 요소는 종종 학습 아티팩트 URI, S3 로그 및 민감한 데이터 흐름을 암시하는 메트릭을 포함합니다.
파이프라인 정의는 각 단계, 관련 역할, 컨테이너 이미지 및 환경 변수를 상세히 설명합니다. Trial 구성 요소는 종종 훈련 아티팩트 URIs, S3 로그 및 민감한 데이터 흐름을 암시하는 지표가 포함되어 있습니다.
## 모델, 엔드포인트 구성 및 배포된 엔드포인트
```bash
@@ -125,9 +125,9 @@ aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
```
중점 영역:
- 모델 아티팩트 S3 URI (`PrimaryContainer.ModelDataUrl`) 추론 컨테이너 이미지.
- 로그 exfil 가능성을 고려한 Endpoint 데이터 캡처 구성 (S3 버킷, KMS).
- S3DataSource 또는 ModelPackage를 사용하는 멀티 모델 엔드포인트 (크로스-계정 패키징 여부 확인).
- 모델 아티팩트 S3 URIs (`PrimaryContainer.ModelDataUrl`) 추론 컨테이너 이미지.
- 가능한 log exfil을 위한 Endpoint 데이터 캡처 구성 (S3 bucket, KMS).
- `S3DataSource` 또는 `ModelPackage`를 사용하는 멀티-모델 엔드포인트(교차 계정 패키징 확인).
- 엔드포인트에 연결된 네트워크 구성 및 보안 그룹.
## Feature Store, Data Wrangler & Clarify
@@ -141,13 +141,13 @@ aws sagemaker describe-data-wrangler-flow --flow-name <flow> --region $REGION
aws sagemaker list-model-quality-job-definitions --region $REGION
aws sagemaker list-model-monitoring-schedule --region $REGION
```
보안:
Security:
- Online feature store는 데이터를 Kinesis로 복제합니다; `OnlineStoreConfig.SecurityConfig.KmsKeyId`와 VPC를 확인하세요.
- Data Wrangler flows는 종종 JDBC/Redshift 자격증명 또는 프라이빗 엔드포인트를 포함합니다.
- Clarify/Model Monitor 작업은 데이터를 S3로 내보내며, 해당 데이터가 퍼블릭(읽기 가능)하거나 교차 계정 접근이 가능할 수 있습니다.
- Online feature stores는 데이터를 Kinesis로 복제합니다. `OnlineStoreConfig.SecurityConfig.KmsKeyId`와 VPC를 확인하세요.
- Data Wrangler flows는 종종 JDBC/Redshift 자격 증명이나 프라이빗 엔드포인트를 포함합니다.
- Clarify/Model Monitor jobs는 데이터를 S3로 내보내며, 해당 데이터가 전 세계에서 읽을 수 있는 상태(world-readable)이거나 계정 간 접근(cross-account) 가능할 수 있습니다.
## MLflow 추적 서버, Autopilot & JumpStart
## MLflow Tracking Servers, Autopilot & JumpStart
```bash
aws sagemaker list-mlflow-tracking-servers --region $REGION
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
@@ -158,15 +158,15 @@ aws sagemaker describe-auto-ml-job --auto-ml-job-name <name> --region $REGION
aws sagemaker list-jumpstart-models --region $REGION
aws sagemaker list-jumpstart-script-resources --region $REGION
```
- MLflow tracking servers는 실험과 아티팩트를 저장하며, 사전 서명된 URL은 모든 것을 노출시킬 수 있습니다.
- MLflow tracking 서버는 실험과 아티팩트를 저장합니다; 사전 서명된 URL은 모든 것을 노출시킬 수 있습니다.
- Autopilot 작업은 여러 training jobs를 실행합니다 — 숨겨진 데이터를 찾기 위해 출력물을 열거하세요.
- JumpStart reference architectures는 계정에 권한이 높은 역할을 배포할 수 있습니다.
- JumpStart 참조 아키텍처는 계정에 권한이 높은 역할을 배포할 수 있습니다.
## IAM 및 네트워킹 고려사항
- 모든 실행 역할(Studio, notebooks, training jobs, pipelines, endpoints)에 연결된 IAM 정책을 나열하세요.
- 네트워크 컨텍스트를 확인하세요: subnets, security groups, VPC endpoints. 많은 조직이 training jobs를 격리하지만 아웃바운드 트래픽 제한을 잊습니다.
- 외부 액세스 관점에서 `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig`에서 참조되는 S3 버킷 정책을 검토하세요.
- 모든 실행 역할에 연결된 IAM 정책(Studio, notebooks, training jobs, pipelines, endpoints)을 열거하세요.
- 네트워크 컨텍스트를 확인하세요: subnets, security groups, VPC endpoints. 많은 조직이 학습 작업을 분리하지만 아웃바운드 트래픽 제한을 잊습니다.
- 외부 접근을 위해 `ModelDataUrl`, `DataCaptureConfig`, `InputDataConfig`에서 참조되는 S3 버킷 정책을 검토하세요.
## Privilege Escalation