イメージのエクスポート、イメージの共有、スナップショットの共有権限を制限して、偶発的なデータ漏洩を防止します。
セキュリティリスク
イメージの共有機能とエクスポート機能は、開発者とデプロイメントの効率を向上させます。しかし、これらの機能はデータセキュリティの課題ももたらします。不適切な権限設定や不注意なイメージ作成は、コアコード、環境構成、機密データの意図的または意図的でない漏洩につながる可能性があります。たとえば、従業員がエクスポート権限を使用して本番サーバーのイメージをコピーし、機密情報を取得する可能性があります。さらに、イメージを作成する際にテストデータ、構成ファイル、または一時的な認証情報を完全にクリーンアップしないと、イメージが使用または共有されるときにこの情報が誤って公開される可能性があります。これにより、以下のセキュリティリスクが生じます。
静的データスナップショット: イメージとスナップショットは、特定の時点における Elastic Compute Service (ECS) インスタンスの完全な状態をキャプチャします。これには、オペレーティングシステムやアプリケーションファイルだけでなく、次のようなさまざまな種類の機密データも含まれます。
ID 認証情報: Secure Shell Protocol (SSH) の秘密鍵、API AccessKey、データベース接続文字列、ハードコードされたアプリケーションのパスワード。
ユーザーデータ: 会社のコアコード、データベース情報、およびプライベートユーザーデータ。
システムトレース: シェルコマンド履歴 (.bash_history)、一時ファイル、およびさまざまなアプリケーションからのログとキャッシュ。
権限拡散のリスク: 共有およびエクスポート操作は、データアクセス権限を管理された内部環境から、より広範で、時には制御不能な範囲にまで拡張します。機密情報を含むイメージが間違ったアカウントと共有されたり、オフライン環境にエクスポートされたりすると、データが悪意のあるアクターによって誤用されたり、悪用されたりする可能性があります。
ベストプラクティス
イメージの作成
イメージを作成する前に、インスタンスにログインして機密情報を確認します。イメージに SSH キーなどのログイン情報が含まれている場合、この情報はイメージから作成された新しいインスタンスに書き込まれます。これは、インスタンスの作成時に新しいキーペアをアタッチするか、パスワードを使用してログインすることを選択した場合でも発生します。これは、イメージからの元のキーペアとパスワードが、新しいインスタンスへのアクセスに引き続き使用できることを意味します。
ユーザーパスワード情報のクリーンアップ:
Linux: /etc/shadow と /etc/passwd から不要なユーザー情報を確認して削除します。
Windows: システム準備 (Sysprep) ツールを実行して、イメージを一般化します。この操作により、コンピューターのシステム ID (SID) がリセットされ、現在のユーザー情報がクリアされ、次回の起動時に新しいアカウントを作成するか、管理者パスワードをリセットする必要があります。また、ローカルユーザーとグループ (lusrmgr.msc) で不要なローカルアカウントをすべて手動で削除します。
すべての SSH キーの削除:
Linux: /root/.ssh およびすべてのユーザーのホームディレクトリ (/home/*/.ssh) からキーファイル (特に id_rsa と authorized_keys) を削除します。
Windows: C:\Users\Administrator\.ssh およびすべてのユーザーのホームディレクトリ (C:\Users\*\\.ssh) からキーファイルを削除します。また、資格情報マネージャーですべてのキャッシュされた資格情報を確認してクリアします。
シェル履歴のクリア:
Linux: history -c を実行し、/root/.bash_history およびすべてのユーザーのホームディレクトリ (/home/*/.bash_history) から .bash_history ファイルを削除します。
Windows: Clear-History を実行して、現在の PowerShell セッション履歴をクリアします。次に、すべてのユーザーの PowerShell 履歴ファイルを削除します。このファイルは通常、AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt にあります。
一時ファイルとログのクリーンアップ:
Linux: /tmp および /var/tmp ディレクトリをクリアします。/var/log ディレクトリのログを確認してクリーンアップします。
Windows: ディスククリーンアップツール (cleanmgr.exe) を実行して、システムの一時ファイル、ゴミ箱、その他の項目をクリアします。また、wevtutil cl <LogName> コマンド (例: wevtutil cl System) またはイベントビューアーを使用して、アプリケーション、セキュリティ、システムログなど、すべての主要な Windows イベントログを手動でクリアします。
ハードコードされた認証情報の削除: アプリケーションコードと構成ファイルをチェックして、データベースのパスワードや API キーなどのハードコードされた機密情報が含まれていないことを確認します。
ビジネスデータとアプリケーションキャッシュのクリーンアップ: Web サーバーやデータベースなどのアプリケーションからビジネスデータとキャッシュディレクトリをクリアします。
コンプライアンス機能
ブロック: イメージのエクスポートとイメージおよびスナップショットの共有の禁止
信頼レベルの低い Resource Access Management (RAM) ユーザーまたはユーザーグループに対しては、コアイメージ資産に対する高リスク操作の実行を明示的に禁止します。Deny ポリシーを使用してこの制限を適用し、イメージの共有とエクスポートをブロックします。組織またはアカウントレベルでは、RAM ポリシーを使用して、イメージのエクスポートとイメージおよびスナップショットの共有をブロックできます。
エンタープライズユーザーの場合:
Alibaba Cloud アカウントでリソースディレクトリコンソールにログインし、左側のメニューバーで [コントロールポリシー] をクリックし、カスタムポリシーを作成して、次の JSON コンテンツを貼り付けます。
このポリシーは、イメージのエクスポートと、イメージおよびスナップショットの共有を拒否します。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:ExportImage", "ecs:ModifyImageSharePermission" ], "Resource": "*", "Effect": "Deny" }, { "Action": [ "resourcesharing:CreateResourceShare", "resourcesharing:AssociateResourceShare" ], "Resource": "*", "Condition": { "StringEquals": { "resourcesharing:RequestedResourceType": [ "Snapshot", "Image" ] } }, "Effect": "Deny" } ] }リソースディレクトリで、適切なノードを選択し、ポリシーをアタッチします。これにより、ポリシーはそのノード配下のすべてのアカウントに対して指定された操作をブロックします。
非エンタープライズユーザーの場合:
Alibaba Cloud アカウントでRAM コンソールにログインします。左側のナビゲーションウィンドウで、[アクセスポリシー] をクリックします。上記と同じ内容でカスタムポリシーを作成します。
アクセスポリシーを RAM ユーザー、RAM ユーザーグループ、または RAM ロールにアタッチします。詳細については、「アクセスポリシー承認の管理」をご参照ください。