メタデータ・サービスのセキュリティに関するベストプラクティス
IBM データセキュリティを重視しており、メタデータを最高水準で保護するために、以下のベストプラクティスに従うことをお勧めします。
概要
このトピックでは、以下の操作を行うことによって、メタデータを保護するようにセキュリティー安全機能を構成する方法を説明します。
- コンソールでセキュアアクセスを有効にする
- 不要なインスタンスやアカウントメタデータ・サービスを無効にする。
- 必要に応じて、コンピューティングリソースのIDに対する信頼済みプロファイルを制限するか、割り当てない。
- ネットワーク・セキュリティーの強化。
コンソールでセキュアアクセスを有効にする
メタデータ・サービスへの安全なアクセスを有効にすることができます。 セキュアアクセスが有効になっている場合、メタデータサービスへのアクセスは、暗号化された HTTP セキュアプロトコル( HTTPS )を介して、仮想サーバーインスタンスからのみ可能となります。 詳細については、 コンソールでセキュアアクセスを有効にするを 参照してください
「 HTTPS 」または「 HTTP 」を必須のメタデータサービスプロトコルとして指定する利用許諾条件が付いた画像を使用する場合は、メタデータサービスのリクエストおよびレスポンスにおいて、この点に留意してください。 HTTP 用に設定された画像を HTTPS では使用できず、その逆も同様です。
インスタンスまたはアカウントでのメタデータ・サービスの無効化
サービスが有効になっている既存のインスタンスでサービスを無効にすることができます。 詳しくは、『メタデータ・サービスを有効または無効にする』を参照してください。
仮想サーバーインスタンスのメタデータサービスを無効にできない場合があります。これは、そのサービスが有効である必要があるという使用許可条件があるためです。
iptables のファイアウォールを使用して、以下のアクセスを制限します。 Linux
iptables ( Linux )のファイアウォールユーティリティを使用して、メタデータサービスのリンクローカルアドレス(信頼済みネットワーク)とインターネット(信頼されていないネットワーク)の間に障壁を設けてください。 どのトラフィックを許可し、どのトラフィックをブロックするかを規定するルールを定義します。
次の例では、 Linux iptables およびその所有モジュールを使用し、デフォルトのインストール時の Apache ID に基づいて、 Apache Web サーバーがメタデータのリンクローカルアドレス ( 169.254.169.254 ) にアクセスできないようにしています。 このルールは、そのユーザーとして実行されているプロセスからのすべてのメタデータ要求を拒否する「拒否」ルールを使用しています。
sudo iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner --uid-owner apache --jump REJECT
このエンドポイントは、仮想サーバーインスタンス内で実行されているすべてのコマンド、プロセス、およびソフトウェアアプリケーションからアクセス可能です。 API エンドポイントには、仮想サーバー・インスタンス外部からはアクセスできません。 この手順により、新たなレベルのセキュリティーが追加されます。
別の方法として、許可ルールを使用して特定のユーザーまたはグループにアクセスを定義することもできます。 許可ルールでは、どのソフトウェアがインスタンスのメタデータにアクセスする必要があるかを決定する必要があります。 ルールを定義しておくことで、後でインスタンス上のソフトウェアや設定を変更した場合でも、ソフトウェアが誤ってメタデータサービスにアクセスするのを防ぐことができます。
グループでの許可ルールの使用を定義することもできます。 ファイアウォールのルールを変更することなく、許可グループにユーザーを追加・削除します。
次の例では、ユーザー アカウント trustworthy-user で実行されているプロセスを除き、すべてのプロセスによるメタデータサービスへのアクセスを禁止しています:
sudo iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner trustworthy-user --jump REJECT
コンピュート・リソース ID のトラステッド・プロファイルの制限
IAM でコンピュートリソースの ID 用に作成する信頼済みプロファイルの数を制限してください。 インスタンスにコンピュート・リソース ID を割り当ないことにする、という選択肢もあります。
信頼できるプロファイルを削除する'信頼できるプロファイルを削除する' 信頼できるプロファイルを削除するを実行すると、コンピュートリソースと連携ユーザーはプロファイルからリンク解除され、信頼されたプロファイルIDを適用できなくなります。
また、信頼関係を再定義し、アクセス・ポリシーを割り当て、セッション限度を更新することによって、既存のトラステッド・プロファイルを更新することもできます。 詳しくは、トラステッド・プロファイルの更新を参照してください。
ノンスを使用してトークンリクエストを検証する
IDアクセストークンを取得するためのリクエストでノンセを指定し、レスポンス内でそれが同一であることを確認することで、そのレスポンスが実際に直前に実行された呼び出しによるものであることを検証することができます。 指定された場合、レスポンスで返される値およびデコードされたIDトークン内の同名のプロパティの値は、指定された値と一致します。
追加のネットワーク・セキュリティー対策
仮想サーバー・インスタンスへのネットワーク・トラフィックを制御するための以下のオプションについて検討します。
-
セキュリティー・グループ を使用して、インスタンスへのアクセスを制限します。
-
インスタンス応答ホップ限界が正しく構成されていることを確認してください。 構成が不適切であると、サービスに到達しようとしたときにタイムアウト・エラーが発生する可能性があります。 詳しくは、 UI を使用したメタデータ・ホップ限界の設定 を参照してください。
-
アクセス制御リスト(ACL) をセットアップして、 IBM Cloud® Virtual Private Cloud内のすべての着信トラフィックと発信トラフィックを制御します。 ACL は、セキュリティー・グループに似た、組み込みの仮想ファイアウォールです。 セキュリティー・グループとは異なり、ACL のルールは、インスタンスとの間のトラフィックではなく、サブネットとの間のトラフィックを制御します。
-
Virtual Private Network (VPN) for VPC を使用して、リモートネットワークから VPC へのプライベート接続を確立します。
-
IBM Cloud® のVPC向け 仮想プライベートエンドポイント (VPE)を使用すると、VPC内のサブネットから割り当てられた任意のIPアドレスを使用して、VPCネットワークからサポート対象の IBM Cloud サービスに接続できます。 VPE は、サービスごと、またはサービス・インスタンスごとに作成されるエンドポイント・ゲートウェイにバインドされた仮想 IP インターフェースです。
-
VPC で IBM Cloud のフロー・ログを使用して、インスタンスに到達するトラフィックをモニターする。
-
メタデータ・サービスへの 安全なアクセスを可能にする。 セキュアアクセスが有効になっている場合、メタデータサービスへのアクセスは、暗号化された HTTP セキュアプロトコル( HTTPS )を介して、仮想サーバーインスタンスからのみ可能となります。