イメージのエクスポートと共有の権限を制限して、認証情報、ユーザーデータ、システムトレースの意図しない漏洩を防ぎます。
セキュリティリスク
イメージ共有とイメージのエクスポートはデプロイ効率を向上させますが、データセキュリティのリスクも伴います。不適切な権限やクリーンアップされていないイメージは、コアコード、環境設定、機密データの漏洩につながる可能性があります。例えば、従業員が本番環境のイメージをエクスポートして認証情報を取得したり、イメージ共有時にイメージ内に残存するテストデータや一時的な認証情報が漏洩したりする可能性があります。具体的なリスクは次のとおりです。
-
静的データスナップショット:イメージとスナップショットは、特定の時点における Elastic Compute Service (ECS) インスタンスの完全な状態をキャプチャします。これには、オペレーティングシステム、アプリケーションファイル、および次のような機密データが含まれます。
-
ID 認証情報:SSH 秘密キー、API AccessKey、データベース接続文字列、ハードコードされたアプリケーションパスワード。
-
ユーザーデータ:企業のコアコード、データベース情報、プライベートなユーザーデータ。
-
システムトレース:シェルコマンドの履歴 (.bash_history)、一時ファイル、アプリケーションのログとキャッシュ。
-
-
権限の拡散リスク:共有とエクスポートにより、データアクセスは管理された環境から、より広範で制御不能な範囲にまで及ぶ可能性があります。機密情報を含むイメージが誤ったアカウントと共有されたり、オフライン環境にエクスポートされたりすると、データが悪意のある攻撃者によって不正利用される可能性があります。
ベストプラクティス
イメージの作成
イメージを作成する前に、インスタンスにログインして機密情報を削除してください。イメージに SSH キーなどのログイン認証情報が含まれている場合、インスタンス作成時に新しいキーペアをアタッチしたり、新しいパスワードを設定したりしても、これらの認証情報はイメージから作成された新しいインスタンスに引き継がれます。
-
ユーザーパスワード情報のクリーンアップ:
-
Linux:
/etc/shadowと/etc/passwdから不要なユーザーエントリを削除します。 -
Windows: システム準備 (Sysprep) ツールを実行してイメージを一般化します。これにより、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/およびすべてのユーザーのホームディレクトリ (/home/*/) から.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 サーバー、データベース、およびその他のアプリケーションからビジネスデータとキャッシュディレクトリをクリアします。
コンプライアンス機能
イメージのエクスポートとイメージ/スナップショット共有のブロック
信頼レベルの低い RAM ユーザーまたは RAM ユーザーグループに対しては、Deny ポリシーを使用して、主要なイメージ資産に対するリスクの高い操作 (具体的には、イメージのエクスポート、イメージ共有、スナップショット共有) を禁止します。組織またはアカウントレベルで、RAM ポリシーを使用してこれらの制限を適用します。
-
エンタープライズユーザーの場合:
-
Alibaba Cloud アカウントで Resource Directory コンソールにログインします。左側のナビゲーションペインで [コントロールポリシー] をクリックして、カスタムポリシーを作成して、次の 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" } ] } -
Resource Directory で、ノードを選択してポリシーをアタッチします。ポリシーは、そのノード配下にあるすべてのアカウントに対して指定された操作をブロックします。
-
-
エンタープライズユーザー以外の場合:
-
Alibaba Cloud アカウントで RAM コンソールにログインします。左側のナビゲーションペインで、権限付与ポリシー をクリックします。同じ内容でカスタムポリシーを作成します。
-
ポリシーを RAM ユーザー、RAM ユーザーグループ、または RAM ロールにアタッチします。詳細については、「アクセスポリシーの権限管理」をご参照ください。
-