# AWS - SageMaker Enum

{{#include ../../../../banners/hacktricks-training.md}}

## サービス概要

Amazon SageMaker はノートブック、トレーニングインフラ、オーケストレーション、レジストリ、マネージドエンドポイントを結びつける AWS のマネージド機械学習プラットフォームです。SageMaker リソースが侵害されると通常得られるもの:

- 広範な S3、ECR、Secrets Manager、または KMS へのアクセス権を持つ長期間有効な IAM 実行ロール。
- S3、EFS、または feature stores に格納された機密データセットへのアクセス。
- VPC 内のネットワーク足場（Studio apps、training jobs、endpoints）。
- コンソール認証をバイパスする高権限の presigned URL。

SageMaker がどのように構成されているかを理解することは、pivot、persist、または exfiltrate data を行う前に重要です。

## コア構成要素

- **Studio Domains & Spaces**: Web IDE (JupyterLab, Code Editor, RStudio)。各 domain は共有 EFS ファイルシステムとデフォルトの実行ロールを持ちます。
- **Notebook Instances**: スタンドアロンノートブック用のマネージド EC2 インスタンス。個別の実行ロールを使用します。
- **Training / Processing / Transform Jobs**: ECR からコード、S3 からデータを取得するエフェメラルなコンテナ。
- **Pipelines & Experiments**: すべてのステップ、入力、出力を記述するオーケストレーションされたワークフロー。
- **Models & Endpoints**: HTTPS エンドポイント経由で推論にデプロイされるパッケージ化されたアーティファクト。
- **Feature Store & Data Wrangler**: データ準備とフィーチャ管理のためのマネージドサービス。
- **Autopilot & JumpStart**: 自動化された ML とキュレートされたモデルカタログ。
- **MLflow Tracking Servers**: presigned アクセストークンを用いるマネージド MLflow UI/API。

すべてのリソースは実行ロール、S3 ロケーション、コンテナイメージ、そしてオプションの VPC/KMS 設定を参照します — 列挙時にこれらをすべて記録してください。

## アカウント & グローバルメタデータ
```bash
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
aws sagemaker get-sagemaker-servicecatalog-portfolio-status --region $REGION

# List execution roles used by models (extend to other resources as needed)
aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' --output text | tr '	' '
' | sort -u

# Generic tag sweep across any SageMaker ARN you know
aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
```
クロスアカウントの信頼関係（execution roles や external principals を持つ S3 バケットなど）および service control policies（SCPs）などのベースラインの制限を記録してください。

## Studio ドメイン、Apps & Shared Spaces
```bash
aws sagemaker list-domains --region $REGION
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
aws sagemaker list-user-profiles --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-user-profile --domain-id <domain-id> --user-profile-name <profile> --region $REGION

# Enumerate apps (JupyterServer, KernelGateway, RStudioServerPro, CodeEditor, Canvas, etc.)
aws sagemaker list-apps --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-app --domain-id <domain-id> --user-profile-name <profile> --app-type JupyterServer --app-name default --region $REGION

# Shared collaborative spaces
aws sagemaker list-spaces --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-space --domain-id <domain-id> --space-name <space> --region $REGION

# Studio lifecycle configurations (shell scripts at start/stop)
aws sagemaker list-studio-lifecycle-configs --region $REGION
aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <name> --region $REGION
```
記録する項目:

- `DomainArn`, `AppSecurityGroupIds`, `SubnetIds`, `DefaultUserSettings.ExecutionRole`.
- マウントされた EFS (`HomeEfsFileSystemId`) と S3 のホームディレクトリ。
- Lifecycle scripts（しばしば bootstrap credentials や push/pull による追加コードを含む）。

> [!TIP]
> Presigned Studio URLs は、広く付与されると認証をバイパスできることがある。

## ノートブックインスタンスとライフサイクル設定
```bash
aws sagemaker list-notebook-instances --region $REGION
aws sagemaker describe-notebook-instance --notebook-instance-name <name> --region $REGION
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-onlyモードの判別。
- `DefaultCodeRepository`, `DirectInternetAccess`, `RootAccess` にある S3 の場所。
- 認証情報や永続化フック用のライフサイクルスクリプト。

## Training, Processing, Transform & Batch Jobs
```bash
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION

aws sagemaker list-processing-jobs --region $REGION
aws sagemaker describe-processing-job --processing-job-name <job> --region $REGION

aws sagemaker list-transform-jobs --region $REGION
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 する可能性がある。

## パイプライン、実験、トライアル
```bash
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
aws sagemaker describe-pipeline --pipeline-name <pipeline> --region $REGION

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
```
パイプライン定義は、各ステップ、関連するロール、コンテナイメージ、および環境変数の詳細を記述します。Trial コンポーネントにはしばしばトレーニングアーティファクトのURI、S3ログ、そして機密データの流れを示唆するメトリクスが含まれます。

## モデル、エンドポイント設定、およびデプロイ済みエンドポイント
```bash
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION

aws sagemaker list-endpoint-configs --region $REGION
aws sagemaker describe-endpoint-config --endpoint-config-name <cfg> --region $REGION

aws sagemaker list-endpoints --region $REGION
aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
```
重点領域:

- モデルアーティファクトの S3 URIs (`PrimaryContainer.ModelDataUrl`) および 推論コンテナイメージ。
- エンドポイントのデータキャプチャ構成（S3 bucket, KMS） — 可能な log exfil を想定して確認。
- `S3DataSource` または `ModelPackage` を使用するマルチモデルエンドポイント（クロスアカウントでのパッケージ化を確認）。
- エンドポイントに紐づくネットワーク構成とセキュリティグループ。

## Feature Store, Data Wrangler & Clarify
```bash
aws sagemaker list-feature-groups --region $REGION
aws sagemaker describe-feature-group --feature-group-name <feature-group> --region $REGION

aws sagemaker list-data-wrangler-flows --region $REGION
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
```
セキュリティのポイント:

- Online feature stores はデータを Kinesis に複製します。`OnlineStoreConfig.SecurityConfig.KmsKeyId` と VPC を確認してください。
- Data Wrangler のフローには、JDBC/Redshift の認証情報や private endpoints が埋め込まれていることが多いです。
- Clarify/Model Monitor ジョブはデータを S3 にエクスポートしますが、それが world-readable または cross-account でアクセス可能になっている場合があります。

## 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

aws sagemaker list-auto-ml-jobs --region $REGION
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は実験やアーティファクトを保存します。presigned URLsによりすべてが露出する可能性があります。
- Autopilot jobsは複数のtraining jobsを起動します — 隠されたデータを見つけるために出力を列挙してください。
- JumpStart reference architecturesはアカウント内に特権ロールをデプロイする可能性があります。

## IAM とネットワークに関する考慮事項

- すべての実行ロール（Studio、notebooks、training jobs、pipelines、endpoints）にアタッチされているIAMポリシーを列挙してください。
- ネットワークコンテキストを確認してください：subnets、security groups、VPC endpoints。多くの組織はtraining jobsを分離しますが、アウトバウンドトラフィックの制限を忘れがちです。
- 外部アクセスについて、`ModelDataUrl`、`DataCaptureConfig`、`InputDataConfig`で参照されているS3バケットポリシーを確認してください。

## Privilege Escalation

{{#ref}}
../../aws-privilege-escalation/aws-sagemaker-privesc/README.md
{{#endref}}

## Persistence

{{#ref}}
../../aws-persistence/aws-sagemaker-persistence/README.md
{{#endref}}

## Post-Exploitation

{{#ref}}
../../aws-post-exploitation/aws-sagemaker-post-exploitation/README.md
{{#endref}}

## Unauthorized Access

{{#ref}}
../../aws-unauthenticated-enum-access/aws-sagemaker-unauthenticated-enum/README.md
{{#endref}}

## 参考

- [AWS SageMaker Documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)
- [AWS CLI SageMaker Reference](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/index.html)
- [SageMaker Studio Architecture](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio.html)
- [SageMaker Security Best Practices](https://docs.aws.amazon.com/sagemaker/latest/dg/security.html)

{{#include ../../../../banners/hacktricks-training.md}}
