翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation と Config AWS を使用して Amazon ECR リポジトリをモニタリングしてワイルドカードアクセス許可がないか確認する
作成者: Vikrant Telkar (AWS)、Sajid Momin (AWS)、Wassim Benhallam (AWS)
環境:本稼働 | テクノロジー: DevOps; コンテナとマイクロサービス | AWS サービス: AWS CloudFormation、AWSConfig、Amazon ECR、Amazon SNS、AWSLambda |
[概要]
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:*
ワイルドカードアクセス許可を含む Amazon ECR リポジトリを識別するのに役立ちます。 このパターンには、Config AWS でカスタムルールを作成するためのステップとAWS CloudFormation テンプレートが用意されています。AWS Lambda 関数は、Amazon ECRリポジトリポリシーステートメントのecr:*
ワイルドカードアクセス許可をモニタリングします。非準拠のリポジトリポリシーステートメントが見つかった場合、Lambda は Amazon にイベントを送信するように AWS Config に通知し EventBridge 、 EventBridge Amazon Simple Notification Service (Amazon SNS) トピックを開始します。このSNSトピックでは、非準拠のリポジトリポリシーステートメントについて E メールで通知します。
前提条件と制限
前提条件
アクティブ AWS アカウント。
AWS コマンドラインインターフェイス (AWS CLI) がインストールされ、設定されています。詳細については、 AWSCLIドキュメントAWSCLIの「 のインストール、更新、アンインストール」を参照してください。
ポリシーステートメントがアタッチされた既存の Amazon ECRリポジトリで、テスト環境にインストールおよび設定されているもの。詳細については、Amazon ECRドキュメントの「プライベートリポジトリの作成」と「リポジトリポリシーステートメントの設定」を参照してください。
AWS Config。任意のAWSリージョンで設定されます。詳細については、Config AWS ドキュメントの「Config の開始方法」を参照してください。 AWS
aws-config-cloudformation.template
ファイル (添付) は、ローカルマシンにダウンロードされます。
機能制限
このパターンのソリューションはリージョナルで、リソースは、同じリージョンに作成されます。
アーキテクチャ
次の図は、Config AWS が Amazon ECRリポジトリポリシーステートメントを評価する方法を示しています。
この図表は、次のワークフローを示しています:
AWS Config はカスタムルールを開始します。
カスタムルールは Lambda 関数を呼び出して、Amazon ECRリポジトリポリシーステートメントのコンプライアンスを評価します。次に、Lambda 関数は非準拠のリポジトリポリシーステートメントを識別します。
Lambda 関数は、コンプライアンス違反ステータスを Config AWS に送信します。
AWS Config はイベントを に送信します EventBridge。
EventBridge は、コンプライアンス違反の通知をSNSトピックに発行します。
Amazon は、ユーザーまたは承認されたユーザーに E メールアラートSNSを送信します。
自動化とスケール
このパターンのソリューションは、任意の数の Amazon ECRリポジトリポリシーステートメントをモニタリングできますが、評価するすべてのリソースは同じリージョンで作成する必要があります。
ツール
AWS CloudFormation – AWSリソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体にわたる管理AWS CloudFormation に役立ちます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数のAWSアカウントとAWSリージョンでスタックを管理およびプロビジョニングできます。
AWS Config – AWS Config は、AWSアカウント内のAWSリソースの設定の詳細ビューを提供します。これには、リソース間の関係と設定の履歴が含まれるため、時間の経過と共に設定と関係がどのように変わるかを確認できます。
Amazon ECR–Amazon Elastic Container Registry (Amazon ECR) は、安全でスケーラブル、信頼性の高いAWSマネージドコンテナイメージレジストリサービスです。Amazon ECRは、 を使用してリソースベースのアクセス許可を持つプライベートリポジトリをサポートしていますIAM。
Amazon EventBridge – Amazon EventBridge は、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスイベントバスサービスです。 EventBridge は、アプリケーション、Software as a Service (SaaS) アプリケーション、および AWSのサービスからリアルタイムデータのストリームを AWS Lambda 関数、API宛先を使用するHTTP呼び出しエンドポイント、または他のアカウントのイベントバスなどのターゲットに提供します。
AWS Lambda – AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードの実行をサポートするコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。
Amazon SNS – Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーや E メールアドレスなど、パブリッシャーとクライアント間のメッセージの配信または送信を調整して管理します。サブスクライバーは、サブスクライブしているトピックに対して発行されたすべてのメッセージを受信します。また、同じトピックのサブスクライバーはすべて同じメッセージを受信します。
コード
このパターンのコードは aws-config-cloudformation.template
ファイル (添付) にあります。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
AWS CloudFormation スタックを作成します。 | で次のコマンドを実行して、AWS CloudFormation スタックを作成しますAWSCLI。
| AWS DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
Config AWS カスタムルールをテストします。 |
| AWS DevOps |
添付ファイル
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」