皆さま、こんにちは!y.takanashiです。
今回はセキュリティ・ゾーンの設定と、クラウド・ガードを連携して可用性を高める方法について、以下のドキュメントを元に紹介します。
セキュリティ・ゾーンとは?
セキュリティ・ゾーンとは、特定のコンパートメントに対する操作を制限し、コンパートメントを要塞化することでセキュリティレベルを向上させるOCIサービスです。
セキュリティ・ゾーンでは、「レシピ」と呼ばれる特定のコンパートメント内に複数のポリシーを設定します。
レシピには、「Maximum Security Recipe」と「Custom Security Recipe」の2種類があります。
「Maximum Security Recipe」はオラクル定義のベスト・プラクティスで、合計32個のポリシーが定義されています。
以下が代表的なポリシーです。
ポリシー・ステートメント | 意味 | リソース・タイプ |
---|---|---|
deny instance_without_sanctioned_image | カスタム・イメージからセキュリティ・ゾーンにコンピュート・インスタンスを作成することはできません | コンピュート、 コンピュート管理 |
deny free_database_creation | セキュリティ・ゾーンにAlways Freeデータベース・インスタンスを作成することはできません。 | データベース(すべてのタイプ) |
deny security_list_to_allow_traffic_to_restricted_port | セキュリティ・ゾーン内の制限付きポートへのトラフィックを許可するセキュリティ・リストを作成または変更することはできません。 | 仮想ネットワーク(VCN) |
deny delete_network_security_group | セキュリティ・ゾーン内のVCNネットワーク・セキュリティ・グループは削除できません。 | 仮想ネットワーク(VCN) |
deny load_balancer_with_weak_SSL_communication | セキュリティ・ゾーン内のロード・バランサ・リスナーのSSLポリシーは、TLS 1.2以上を使用する必要があります。 | ロード・バランサ |
deny network_security_group_with_unsecure_ingress_rule | セキュリティ・ゾーン内のセキュアでないポートまたはIPアドレスへのイングレスを許可するルールでは、ネットワーク・セキュリティ・グループを追加できません。 | 仮想ネットワーク(VCN) |
deny revoke_certificate_authority_version | セキュリティ・ゾーン内の認証局(CA)バンドル内の中間証明書を取り消すことはできません。 | 証明書管理 |
deny delete_vcn | セキュリティ・ゾーン内のVCNは削除できません。 | 仮想ネットワーク(VCN) |
deny update_route_table | セキュリティ・ゾーンのVCNルート表は更新できません。 | 仮想ネットワーク(VCN) |
deny update_network_security_group_ingress_rule | セキュリティ・ゾーン内のネットワーク・セキュリティ・グループのイングレス・ルールは変更できません。 | 仮想ネットワーク(VCN) |
deny update_network_security_group_egress_rule | セキュリティ・ゾーン内のネットワーク・セキュリティ・グループのエグレス・ルールは変更できません。 | 仮想ネットワーク(VCN) |
deny delete_vcn_security_list | セキュリティ・ゾーン内のVCNセキュリティ・リストは削除できません。 | 仮想ネットワーク(VCN) |
deny update_vcn_security_list_ingress_rules | セキュリティ・ゾーン内のVCNセキュリティ・リストのイングレス・セキュリティ・ルールは変更できません。 | 仮想ネットワーク(VCN) |
deny update_vcn_security_list_egress_rules | セキュリティ・ゾーン内のVCNセキュリティ・リストのイングレス・セキュリティ・ルールは変更できません。 | 仮想ネットワーク(VCN) |
deny update_DHCP_options | セキュリティ・ゾーンのDHCPオプションは更新できません。 | 仮想ネットワーク(VCN) |
deny update_local_peering_gateway | セキュリティ・ゾーン内のローカル・ピアリング・ゲートウェイは更新できません。 | 仮想ネットワーク(VCN) |
deny detach_volume | セキュリティ・ゾーン内のボリュームはデタッチできません。 | ブロック・ストレージ |
deny delete_certificate_authority | セキュリティ・ゾーン内の認証局は削除できません。 | 証明書管理 |
deny public_buckets | セキュリティ・ゾーン内のオブジェクト・ストレージ・バケット は、パブリックにできません。 | オブジェクト・ストレージ |
「Custom Security Recipe」はユーザーがすべてのポリシーの中から有効化や無効化を設定できるレシピです。
すべてのポリシーの一覧については、以下のドキュメントに記載されています。
OCI公式ドキュメント - 「セキュリティ・ゾーン・ポリシー」
セキュリティ・ゾーンを設定する際の注意点として、1つのコンパートメントに対して単一のセキュリティ・ゾーンのみを設定できる点にご注意してください。
また、親コンパートメントに設定したセキュリティ・ゾーンは、子コンパートメント以降にも継承されて設定が適用されます。
セキュリティ・ゾーンの設定手順
IAMポリシーの設定
Administratorsグループに所属していないユーザーがセキュリティ・ゾーンやレシピの作成、更新、削除を行う場合、以下のIAMポリシーを設定する必要があります。
- Allow group SecutiryAdmins to manage cloud-guard-family in tenancy
- Allow group SecutiryAdmins to manage security-zone in tenancy
- Allow group SecutiryAdmins to manage security-recipe in tenancy
セキュリティ・ゾーンの作成
IAMポリシーの設定後、OCIコンソール画面左上のハンバーガーメニューから「アイデンティティとセキュリティ」→セキュリティ・ゾーン内の「概要」を選択します。
「セキュリティ・ゾーンの作成」から以下の項目を入力します。
- ゾーン・レシピの選択:Oracle管理
- 名前:任意(ここでは「Test Security Zone」)
- 説明:任意(ここでは「This is a test.」)
- コンパートメント:セキュリティ・ゾーンを配置するコンパートメントを選択
ステータスが「作成中」→「アクティブ」となり、セキュリティ・ゾーンの作成は完了です。
セキュリティ・ゾーン作成後、ポリシーの実効には最大で10分程度かかる可能性がある点にご注意ください。
レシピを自身で設定する場合(「Custom Security Recipe」)は、「レシピ」から「レシピの作成」を選択します。
以下の項目を入力、「次」を選択します。
- レシピ名:任意(ここでは「Test Recipe」)
- 説明:任意(ここでは「This is a test.」)
- コンパートメント:セキュリティ・ゾーンを配置するコンパートメントを選択
ポリシーは任意で設定することが可能で、例えばパブリック・アクセスを禁止させる場合、ポリシー・タイプを「Deny Public Access」に変更、ポリシー一覧にチェックを入れます。
レシピの確認画面で、有効化されたポリシー数を確認、「作成」を選択します。
作成後、自身が定義したCustom Security Recipeが表示されます。
Maximum Security Recipeを使用したセキュリティ・ゾーンの設定に戻り、正しく機能するか確認します。
ここでは既に作成したオブジェクト・ストレージのバケットを「パブリック」に設定変更を試みます。
バケットの「可視性の編集」からパブリックに変更、「変更の保存」を選択します。
「変更の保存」を選択後、「Security Zone Violation:〜」というエラーが表示され、可視性の変更ができないことが確認できます。
以上でセキュリティ・ゾーンの設定はすべて完了となります。
クラウド・ガードとの連携
ここではセキュリティ・ゾーンをクラウド・ガードと連携して可用性を高める方法について紹介します。
クラウド・ガードとは、OCIで展開されているサービスの設定内容や、ユーザーアクティビティに対して違反がないか監視をする運用サービスです。
クラウド・ガードは事前定義された「ディレクタ・レシピ」に基づき、OCI サービスに潜むセキュリティ・リスクを可視化します。
クラウド・ガードと連携することで、セキュリティ・ゾーンを作成する前の既存リソースの問題を検出できます。
そのため、セキュリティ・ゾーンを作成する前に、クラウド・ガードの有効化することが推奨されています。
クラウド・ガードの詳細についてはドキュメントは以下をご覧ください。
Speaker Deck - 「Cloud Guard 設定・操作ガイド」
Cloudiiブログ - 「Cloud Guard を有効化してOCIの問題を確認する」
※クラウド・ガードの操作方法については、今回の内容から外れるため割愛しています。
セキュリティ・ゾーンの作成前の既存リソースの問題を確認する場合、セキュリティ・ゾーン内の「クラウド・ガードで詳細を表示」を選択します。
選択後、クラウド・ガードの画面に遷移して問題を確認することができます。
今回の例では、オブジェクト・ストレージのバケットの暗号化キーを、OCIのボールト・サービスで管理することを推奨する内容となっております。
まとめ
今回は簡単にですがセキュリティ・ゾーンの設定と、クラウド・ガードを連携して可用性を高める方法についてまとめました。
これらのサービスを組み合わせることで、セキュリティレベルの高い構成を実現できます。
さらに、どちらのサービスも無料で使用できるため、コスト面でも優れた選択肢となっております。
以上となります。
この記事を通じて読者の皆様の問題解決の一助となれば幸いです。
最後まで読んで頂き、ありがとうございましたm(_ _)m