最もリスクの高いAWS構成トップ3 #aqua #コンテナ #セキュリティ
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「Aqua Security」社の技術ブログで2021年1月20日に公開された「 The 3 Riskiest Cloud Native AWS Configurations 」の日本語翻訳です。
最もリスクの高いAWS構成トップ3
EC2 だけでも数十もの主要なセキュリティ設定が可能なため、AWS の設定オプションの多さに圧倒されることがあります。複雑さが増す一方で、クラウドネイティブデプロイメントにおいて動的なインフラ要件に対応するには、クラウドアカウントを適切に、そして安全に設定することが重要です。サービスを適切に設定するという課題は、利用可能な AWS サービスの数が膨大であり、それぞれが独自の要件を持っているため、さらに複雑になっています。
AWS のクラウドサービスは、新しいサービスの提供や定期的なアップデートなどで常に変動し、CSPM(Cloud Security Posture Management)ソリューションの助けを借りても維持することは困難です。
異なる AWS サービス間に相互作用する多くのクラウド構成要素があるため、その中には他のサービスを上書きしたり、他のサービスに影響を与えたりする機能を持つものもあります。作業の優先順位の付け方や、どこから手をつけたらいいのかわからず、混乱すると言っても過言ではないでしょう。
その中で最もリスクの高い構成を知ることは、チームが自社環境の潜在的なリスクをどのように把握し、AWS サービスを選択するかを理解する上での指針となります。以下、人気の高いクラウドネイティブ AWS サービス全体で、最もリスクの高いクラウド AWS 構成トップ3を紹介します。
Amazon EKS
AWS 上で Kubernetes を実行するサービスに、Amazon EKS が存在します。IAM や VPC などの他の Amazon サービスと統合されているので、構成の一貫性を保つのに役立ちます。
- Access Control: Block pod access to IMDS
- デフォルト設定を継承することで、EC2 のインスタンスメタデータサービス(IMDS)にノードの IAM ロールに割り当てられたクレデンシャルによって、ユーザロールを上書きされる可能性があります。このリスクを最小限に抑えるため、コンテナ全体のパーミッションと同様に、最小特権の概念に沿って、IMDS への Pod アクセスをブロックすることが推奨されています。
AWS Fargate
このサーバーレスサービスの提供により、クラウドネイティブ環境のためのサーバ(一般的には EC2 サーバ)のプロビジョニング、管理、設定を Amazon に任せることができます。
- Access Control: Assigning a Task Execution Role
- タスク実行ロールは Fargate が2つの重要なタスクを実現するために使用します。1つ目は、プライベートレジストリからイメージを pullすること(これはパブリックレジストリよりも推奨されています)、2つ目はコンテナログを Cloudwatch に公開することです。タスク実行ロールの目的は、IAM ロールに基づいて各タスクの権限を分離することで、各タスクがアカウント内の他の他の AWS サービスを参照することが出来ないようすることです。タスク実行ロールは EC2 ロールと同じになりますが、CNI(コンテナネットワーキングインタフェース)が IAM ロールを想定することを許可するように信頼関係を変更する必要があります。
AWS Fargate
- Policy and Config: Read-only container
- 不変性の概念をサポートするために、タスク定義では「読み取り専用コンテナ」を定義する必要があります。これは、「read only root system」プロパティを「true」に設定することで実現できます。
AWS が提供している最もリスクの高いトップ10の構成リストと、AWS のクラウドネイティブサービスに関連するその他の構成については、ホワイトペーパー「The 10 Riskiest AWS Misconfigurations」の全文を参照してください。