AWS CloudFormation と Config を使用して Amazon AWS ECRリポジトリのワイルドカードアクセス許可をモニタリングする - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation と Config を使用して Amazon AWS ECRリポジトリのワイルドカードアクセス許可をモニタリングする

作成者: Vikrant Telkar (AWS)、Sajid Momin (AWS)、Wassim Benhallam (AWS)

概要

Amazon Web Services (AWS) クラウドでは、Amazon Elastic Container Registry (Amazon ECR) は、AWSIdentity and Access Management () を使用したリソースベースのアクセス許可を持つプライベートリポジトリをサポートするマネージドコンテナイメージレジストリサービスですIAM。

IAM は、リソース属性とアクション属性の両方で*「」ワイルドカードをサポートしているため、一致する複数の項目を自動的に選択することが容易になります。テスト環境では、ECRリポジトリポリシーステートメントのプリンシパル要素のecr:*ワイルドカードアクセス許可を使用して、認証されたすべてのAWSユーザーに Amazon リポジトリへのアクセスを許可できます。 https://docs.aws.amazon.com/AmazonECR/latest/userguide/set-repository-policy.htmlecr:* ワイルドカードアクセス権限は、本稼働データにアクセスできない開発アカウントで開発やテストを行う場合に役立ちます。

ただし、ecr:* ワイルドカード権限は重大なセキュリティ上の脆弱性を引き起こす可能性があるため、本番環境では使用しないようにする必要があります。このパターンのアプローチは、ECRリポジトリポリシーステートメントにecr:*ワイルドカードアクセス許可を含む Amazon リポジトリを識別するのに役立ちます。  このパターンは、AWSConfig でカスタムルールを作成するためのステップと AWS CloudFormation テンプレートを提供します。AWS Lambda 関数は、Amazon ECRリポジトリポリシーステートメントのecr:*ワイルドカードアクセス許可をモニタリングします。非準拠のリポジトリポリシーステートメントが見つかった場合、Lambda は Amazon にイベントを送信するように AWS Config に通知し EventBridge 、 EventBridge Amazon Simple Notification Service (Amazon SNS) トピックを開始します。このSNSトピックでは、非準拠のリポジトリポリシーステートメントについて E メールで通知します。

前提条件と制限

前提条件

 

機能制限

  • このパターンのソリューションはリージョナルで、リソースは、同じリージョンに作成されます。 

アーキテクチャ

次の図は、Config が Amazon AWS ECRリポジトリポリシーステートメントを評価する方法を示しています。 

AWS クラウド architecture diagram showing interaction between services for event processing and notification.

この図表は、次のワークフローを示しています:

  1. AWS Config はカスタムルールを開始します。 

  2. カスタムルールは Lambda 関数を呼び出して、Amazon ECRリポジトリポリシーステートメントのコンプライアンスを評価します。次に、Lambda 関数は非準拠のリポジトリポリシーステートメントを識別します。

  3. Lambda 関数は、コンプライアンス違反のステータスを Config AWS に送信します。

  4. AWS Config は にイベントを送信します EventBridge。

  5. EventBridge は、コンプライアンス違反の通知を SNSトピックに発行します。

  6. Amazon は、ユーザーまたは承認されたユーザーに E メールアラートSNSを送信します。

自動化とスケール

このパターンのソリューションは、任意の数の Amazon ECRリポジトリポリシーステートメントをモニタリングできますが、評価するすべてのリソースを同じリージョンに作成する必要があります。

ツール

  • AWS CloudFormation – AWS CloudFormation は、AWSリソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体にわたる管理に役立ちます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数のAWSアカウントとAWSリージョンにまたがるスタックを管理およびプロビジョニングできます。

  • AWS Config – AWS Config は、AWSアカウント内のAWSリソースの設定の詳細ビューを提供します。これには、リソース間の関係と設定の履歴が含まれるため、時間の経過と共に設定と関係がどのように変わるかを確認できます。

  • AmazonECRAmazon Elastic Container Registry (Amazon ECR) は、安全性、スケーラビリティ、信頼性を備えた AWSマネージドコンテナイメージレジストリサービスです。Amazon ECR は、 を使用したリソースベースのアクセス許可を持つプライベートリポジトリをサポートしていますIAM。                                

  • Amazon EventBridge – Amazon EventBridge は、アプリケーションをさまざまなソースのデータに接続するために使用できるサーバーレスイベントバスサービスです。 は、アプリケーション、Software as a Service (SaaS) アプリケーション、および AWS サービスから、AWSLambda 関数、API宛先を使用するHTTP呼び出しエンドポイント、他のアカウントのイベントバスなどのターゲットに、リアルタイムデータのストリーム EventBridge を提供します。

  • AWS Lambda – AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードの実行をサポートするコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーや E メールアドレスなど、パブリッシャーとクライアント間のメッセージの配信または送信を調整および管理します。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。 

コード

このパターンのコードは aws-config-cloudformation.template ファイル (添付) にあります。

エピック

タスク説明必要なスキル
AWS CloudFormation スタックを作成します。

で次のコマンドを実行して、 AWS AWS CloudFormation スタックを作成しますCLI。

$ aws cloudformation create-stack --stack-name=AWSConfigECR \ --template-body file://aws-config-cloudformation.template \ --parameters ParameterKey=<email>,ParameterValue=<myemail@example.com> \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
タスク説明必要なスキル
Config AWS カスタムルールをテストします。
  1. AWS マネジメントコンソールにサインインし、Config AWS コンソールを開き、リソースを選択します。

  2. [リソース インベントリ] ページでは、リソース カテゴリ、リソース タイプ、およびコンプライアンス ステータスでフィルタリングできます。

  3. を含む Amazon ECRリポジトリecr:*NON-COMPLIANT?で、 を含まない Amazon ECRリポジトリecr:*は ですCOMPLIANT

  4. SNS トピックにサブスクライブされている E メールアドレスは、Amazon ECRリポジトリに非準拠のポリシーステートメントが含まれている場合、通知を受け取ります。

AWS DevOps

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip