# AWS - ECR Enum {{#include ../../../banners/hacktricks-training.md}} ## ECR ### 基本情報 Amazon **Elastic Container Registry** (Amazon ECR) は **管理されたコンテナイメージレジストリサービス** です。これは、顧客がよく知られたインターフェースを使用してコンテナイメージと対話できる環境を提供するように設計されています。具体的には、Docker CLI または任意の好ましいクライアントの使用がサポートされており、コンテナイメージのプッシュ、プル、および管理などの活動を可能にします。 ECRは2種類のオブジェクトで構成されています: **レジストリ** と **リポジトリ**。 **レジストリ** すべてのAWSアカウントには2つのレジストリがあります: **プライベート** と **パブリック**。 1. **プライベートレジストリ**: - **デフォルトでプライベート**: Amazon ECRプライベートレジストリに保存されたコンテナイメージは、**あなたのAWSアカウント内の認可されたユーザー**または許可を与えられたユーザーのみが**アクセス可能**です。 - **プライベートリポジトリ**のURIは、`.dkr.ecr..amazonaws.com/` の形式に従います。 - **アクセス制御**: **IAMポリシー**を使用してプライベートコンテナイメージへの**アクセスを制御**でき、ユーザーやロールに基づいて細かい権限を設定できます。 - **AWSサービスとの統合**: Amazon ECRプライベートレジストリは、EKS、ECSなどの他のAWSサービスと簡単に**統合**できます。 - **他のプライベートレジストリオプション**: - タグ不変性の列はそのステータスを示し、タグ不変性が有効になっている場合、**既存のタグ**を持つイメージの**プッシュ**が上書きされるのを**防ぎます**。 - **暗号化タイプ**の列はリポジトリの暗号化プロパティを示し、AES-256などのデフォルトの暗号化タイプや**KMS**が有効な暗号化を表示します。 - **プルスルーキャッシュ**の列はそのステータスを示し、プルスルーキャッシュのステータスがアクティブであれば、**外部パブリックリポジトリのリポジトリをプライベートリポジトリにキャッシュ**します。 - 特定の**IAMポリシー**を設定して異なる**権限**を付与できます。 - **スキャン設定**により、リポジトリ内に保存されたイメージの脆弱性をスキャンできます。 2. **パブリックレジストリ**: - **パブリックアクセス**: ECRパブリックレジストリに保存されたコンテナイメージは、**インターネット上の誰でも認証なしにアクセス可能**です。 - **パブリックリポジトリ**のURIは `public.ecr.aws//` のようになります。`` 部分は管理者によって覚えやすい別の文字列に変更できます。 **リポジトリ** これらは **プライベートレジストリ** または **パブリック** にある **イメージ** です。 > [!NOTE] > リポジトリにイメージをアップロードするには、**ECRリポジトリがイメージと同じ名前である必要があります**。 #### レジストリ & リポジトリポリシー **レジストリとリポジトリ**には、**他のプリンシパル/アカウントに権限を付与するために使用できるポリシー**もあります。たとえば、次のリポジトリポリシーの画像では、組織全体の任意のユーザーがイメージにアクセスできることがわかります。
### 列挙 ```bash # Get repos aws ecr describe-repositories aws ecr describe-registry # Get image metadata aws ecr list-images --repository-name aws ecr describe-images --repository-name aws ecr describe-image-replication-status --repository-name --image-id aws ecr describe-image-scan-findings --repository-name --image-id aws ecr describe-pull-through-cache-rules --repository-name --image-id # Get public repositories aws ecr-public describe-repositories # Get policies aws ecr get-registry-policy aws ecr get-repository-policy --repository-name ``` ### 認証されていない列挙 {{#ref}} ../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum/README.md {{#endref}} ### 権限昇格 次のページでは、**ECRの権限を悪用して権限を昇格させる方法**を確認できます: {{#ref}} ../aws-privilege-escalation/aws-ecr-privesc/README.md {{#endref}} ### ポストエクスプロイト {{#ref}} ../aws-post-exploitation/aws-ecr-post-exploitation/README.md {{#endref}} ### 永続性 {{#ref}} ../aws-persistence/aws-ecr-persistence/README.md {{#endref}} ## 参考文献 - [https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html) {{#include ../../../banners/hacktricks-training.md}}