目次

TLS検査

Network Security サービスは、ネットワークファイアウォールの外側から内部サーバに到達するすべてのインバウンドTLS暗号化IPv4トラフィックに対して、インラインのリアルタイム脅威保護を提供します。仮想アプライアンスは、暗号化されたフローを受信し、復号化して検査し、暗号化して、送信先に送信します。

特定のセグメントに対して保護する暗号化トラフィックがある場合は、単一の管理対象仮想アプライアンスのグローバル設定としてTLS検査を有効にします。この方法では、WebサイトサーバとWebブラウザ間のプライバシーとデータの整合性を確保することで、インターネット通信を保護できます。鍵交換アルゴリズムは、各セッションの接続を保護します。

Network SecurityのTLS機能を、Azure Key Vault、 Amazon Certificate Manager (ACM)、Amazon Simple Storage Service(S3)などの既存のインフラストラクチャの証明書管理製品と統合できます。チェーンの検証を成功させるには:

  • Azure証明書には秘密鍵も含まれており、PFX形式またはPEM(PKCS8のみ)形式のいずれかになります。
  • S3証明書には、PEM(PKCS8またはPKCS1)形式のWebサーバの証明書チェーンを含める必要があります。証明書チェーンは、Webサーバ証明書で始まり、1つ以上の中間CA証明書が続き、ルートCA証明書で終わります。
  • ACM証明書では、 certificate body フィールドにPEMエンコードのWebサーバの証明書を含め、証明書チェーン(各PEMエンコードの中間CA証明書とルートCA証明書を連結した文字列を含む)を含める必要があります。 certificate chain フィールドに入力します。
  • AWS ACMとAzure Key Vaultの両方で、ユーザはWebサーバの証明書チェーンと秘密鍵をインポートする必要があります。Azure Key Vaultを使用すると、仮想アプライアンスで証明書と秘密鍵の両方を取得できます。ただし、秘密鍵はAWS ACMからエクスポートできないため、手動で仮想アプライアンスにインポートするか、CloudHSMを使用して取得する必要があります。これは、AWS S3証明書に対応する秘密鍵についても同様です。

注意: 最適なセキュリティを実現するために、すべての機密データを暗号化して安全に保存してください。


Network Security サービスは、クラウドプラットフォームプロバイダに基づいて、TLS設定プロセスを実行するための適切なウィザードを自動的に提供します。

主な用語

TLSTransport Layer Security。暗号化を使用して安全なネットワーク通信を可能にするプロトコル。 Secure Socket Layer (SSL)

ACMAmazon Certificate Manager。プライベートおよびパブリックTLS証明書を要求、作成、管理、アップロード、展開、および更新するためのサービス。

ARNAmazon Resource Name.IAMポリシー、TLS証明書、API呼び出しなどのAmazonリソースの一意の識別子。

S3Amazon Simple Storage Service。データを保存、整理、および保護するためのストレージサービス。

HCMHybrid Cloud Management。プライベートクラウド機能を複数のパブリッククラウドのハードウェアリソースと連携させるオンプレミスのデータセンター。

AWS CloudHSMHardware Security Module (HSM)。独自の暗号化キーを生成、使用、および管理できるクラウドベースのHSM。

AWS IAMAWS Identity and Access Manager。AWSユーザおよびグループからAWSサービスおよびリソースへのアクセスを制御できます。

AWS KMSAWS Key Management ServiceアプリケーションおよびAWSサービスで使用する暗号化キーを作成および制御できます。

AWS Secrets Manager –シークレット、キー、およびアプリケーションやサービスを含むITリソースの保護に使用されるその他の資格情報を管理および取得できます。

Azure Key Vault –パスワード、証明書、キーなどの安全なリソースを管理および取得できるようにする、Azureプラットフォーム用の暗号化サービスです。

AWSのTLSインスペクションを設定する

AWSプラットフォームの場合、TLS検査ポリシーには次のものが必要です。

  • AWS Certificate Manager(ACM)またはS3 へのアクセス。プロキシ対象のサーバを追加する前に、ACMまたはS3接続を設定します。最適なセキュリティを確保するには、アプライアンスからACMまたはS3の証明書へのアクセスが読み取り専用に制限されていることを確認してください。

  • ACMまたはS3 を通じてロードされた証明書ARN。これは、秘密鍵とペアになる保護対象サーバの公開鍵証明書です。証明書ファイルの合計サイズは512KBを超えることはできません。これには、証明書ごとに32KBの制限と8KBの最大秘密鍵PEMサイズが含まれます。

  • Identity Access Management(IAM)ユーザの役割またはグループがTLSサービスポリシーを作成できるようにするための権限。最適なセキュリティを確保するには、必要最小限の権限のみを設定してください。アプライアンスのIAMロールには、証明書マネージャに対する読み取りおよびリスト処理、および復号に必要な証明書を付与するポリシーが必要です。これらの権限を設定するには、 Identity and Access Managementに移動します。そこから、ナビゲーションからPolicies を選択し、ACMポリシー、S3 バケット ポリシー、およびSecretsManagerポリシーを作成できます。

    ACMポリシーを作成するには、Create Policyをクリックし、JSONタブで次の権限をコピーして貼り付けます( arnidentifier をリソースの一意のARN識別子に置き換えます)。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "acm:ExportCertificate",
                    "acm:DescribeCertificate",
                    "acm:GetCertificate"
                ],
                "Resource": "arnidentifier"
            },
            {
                "Sid": "VisualEditor1",
                "Effect": "Allow",
                "Action": [
                    "acm:GetAccountConfiguration",
                    "acm:ListCertificates",
                    "acm:ListTagsForCertificate"
                ],
                "Resource": "*"
            }
        ]
    }

    S3 バケット ポリシーを作成するには、Create Policyをクリックし、JSONタブで、次の権限をコピーして貼り付けます( arnidentifier をリソースの一意のARN識別子に置き換えます)。

    {
      "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetBucketLocation",
              "s3:ListBucket"
            ],
            "Resource": "arnidentifier"
          },
          {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
              "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
          }
        ]
      }

    SecretsManagerポリシーを作成するには、Create Policyをクリックし、JSONタブで次の権限をコピーして貼り付けます( arnidentifier をリソースの一意のARN識別子に置き換えます)。

    {
      "Version": "2012-10-17",
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetResourcePolicy",
                  "secretsmanager:GetSecretValue",
                  "secretsmanager:DescribeSecret",
                  "secretsmanager:ListSecretVersionIds"
              ],
              "Resource": "arnidentifier"
          },
          {
              "Sid": "VisualEditor1",
              "Effect": "Allow",
              "Action": [
                  "secretsmanager:GetRandomPassword",
                  "secretsmanager:ListSecrets"
              ],
            "Resource": "*"
          }
        ]
      }
    アプライアンスに、TLS検査に必要な秘密鍵のみを含む独自の暗号化ユーザアカウントがあることを確認します。これにより、作成したシークレットにアプライアンスのユーザアカウント資格情報が付与されます。

    各ポリシーに適切な権限を設定したら、 Roles に移動し、Attach Policyをクリックして、 Network Security アプライアンスのIAMロールに各ポリシーをアタッチします。 IAMポリシーと役割を作成するを参照してください。AWSサービスへのIAMロールのアクセスを制限する方法を参照してください。

  • ハイブリッドクラウド管理(HCM)へのアクセス。プロキシするサーバを追加する前に、HCM接続を設定します。HCMは、仮想アプライアンスと同じ可用性のリージョンゾーンに配置する必要があります。

  • ハードウェアセキュリティモジュール(HSM)へのアクセス。ウィザードから秘密鍵をアップロードしないことを選択した場合のみ、AWS CloudHSMなどのHSMが必要です。

  • AWS Key Management Service(KMS)およびAWSSecrets Manager へのアクセス。セキュリティを最適化するには、アプライアンスごとにKMS ARNを作成して、ファイルシステム上のすべてのキーが暗号化されるようにします。アプライアンスで使用されているKMSカスタマーマスターキー(CMK)を削除、変更、または使用不可にすると、アプライアンスは秘密鍵を復号化できなくなり、関連付けられたTLSポリシーは再起動後に自動的に無効になります。

  • プロキシするサーバとその秘密鍵へのアクセス。TLS検査には複数のプロキシを設定できますが、一度に設定できるプロキシは1つだけです。サーバを追加するには、 Network > Appliances > appliancename ページに移動します。

  • 単一の管理対象の Network Security 仮想アプライアンス。TLS検査用に複数のアプライアンスを設定できますが、一度に設定できるアプライアンスは1つだけです。アプライアンスのバージョンは2021.8.0.11159以上である必要があります。スケーリンググループまたはスケールセットに属するApplianceは現在サポートされていません。AWS CloudHSMを作成すると、HSMによって、特定のポート範囲に関連付けられたインバウンドルールを含む独自のセキュリティグループが作成されます。ポート範囲内のいずれかのポートを介してHSMからキーを取得できるように、このセキュリティグループを仮想アプライアンスに追加する必要があります。AWSでインスタンスを探して選択し、Actions > Security > Change security groupsの順にクリックし、HSMクラスタを関連するセキュリティグループとして追加して、Saveをクリックします。

  • 保護対象の静的IPアドレスを持つ単一のサーバ、またはロードバランサの背後で実行されるサーバの場合はサブネット(CIDR)。サーバのIPを取得するには、サーバが配置されているAWSに移動し、EC2をクリックし、Instances (running)をクリックし、Private IPv4 addressで指定したIPアドレスをコピーします。 (これはAWSにのみアクセス可能なIPアドレスです)。たとえば、 192.0.2.0 、CIDRを使用する場合は 198.51.100.0/24です。サブネットの範囲は8〜32です。


    注意

    Network Security は現在、TLSインスペクション用のAWS Gateway Load Balancer (GWLB)をサポートしていません。


  • サーバの公開証明書。アクセスを有効にするには、ACMを使用するか、ACMをAmazon S3 バケットに配置します。

  • 秘密鍵。AWS CloudHSMを使用するか、独自の秘密鍵を手動でアップロードできます。AWS CloudHSMを使用する場合は、最初にAWSでIAMロールとシークレットを作成して、 Network Security サービスが秘密鍵にアクセスできるようにしてください。

AWSプラットフォームを使用してTLSを設定するには、次の手順を実行します。

  1. ポリシーに適切なIAMロールを設定します。「 IAMポリシーと役割を作成する」を参照してください。

  2. 必要に応じて、AWS Certificate Manager(ACM)を設定します。詳細については、 AWS証明書マネージャの使用開始を参照してください。

  3. ハードウェアセキュリティモジュール(HSM)に接続します。リージョンセレクタを使用して、HSMのIPアドレスが仮想アプライアンスの同じ地理的リージョン内にあることを確認します。詳細を表示

  4. Policy > TLS Inspection に移動し、 Configure TLS Inspectionをクリックして、設定ウィザードを開始します。

Configure TLS Inspection 設定ウィザードで、次の手順を実行します。

  1. 復号およびインバウンドTLSトラフィック検査を有効にする管理対象の仮想アプライアンスを選択します。Provide Serverをクリックします。


    注意

    最大4つの管理対象仮想アプライアンスでTLS検査を有効にできますが、一度に有効にできるのは1つだけです。この機能を備えたアプライアンスが5台以上必要な場合は、 サポートレポートを開きます。選択したアプライアンスのバージョンで複数アプライアンスのTLS設定がサポートされていない場合は、ウィザードによって通知され、その選択を続行できなくなります。


  2. 複数のサーバプロキシを設定できますが、一度に1つしか設定できません。10件を超えるプロキシが必要な場合は、 サポートレポートを開きます。Server IPフィールドに、保護するサーバのIPアドレスを入力します。このIPアドレスを取得するには、AWSナビゲーションでEC2をクリックし、ResourcesのInstances (running)をクリックします。AWSのみがアクセス可能なIPアドレスは、Private IP addressesに表示されます。Provide Public Certificateをクリックします。

  3. Certificate ARNフィールドに、サーバの公開証明書S3 ARNまたはACMを入力します。Choose Key Access Methodします。


    注意

    Unable to retrieve certificate エラーが発生した場合は、AWS Servicesに移動し、IAM > Rolesの順にクリックして、 Network Security ロールに適切な権限があることを確認します。設定済みの Network Security ロールをリストからクリックし、リストされているポリシーを編集し、Add additional permissionsをクリックし、使用可能なサービスから証明書マネージャを追加します。 List および Read のアクセスレベル権限を指定します。リソースを指定したら、 Review policy Save changesをクリックします。


  4. AWS CloudHSMを使用してサーバの秘密鍵を提供するか、手動でアップロードするかを指定します。Provide Resourceをクリックします。

    • AWS CloudHSMを使用するように選択した場合は、 AWSSecrets Managerを使用して秘密のARNを指定するように求めるメッセージが表示されます。秘密のARNには接続情報が含まれており、これによりHSMは公開証明書の秘密鍵情報を取得し、アプライアンスに保存できます。シークレットを生成するには、ダイアログで次の項目を指定する必要があります。

      • 暗号化ユーザ(CU)アカウントのユーザ名を指定します。ユーザ名は31文字以内で指定する必要があり、使用できる特殊文字はアンダースコア(_)のみです。
      • 暗号化ユーザ(CU)アカウントのパスワードを指定します。パスワードは7文字未満または32文字を超えることはできません。
      • 発行する証明書を貼り付けます( -----BEGIN CERTIFICATE----- で始まり、 -----END CERTIFICATE-----で終わります)。証明書のサイズは65KBを超えることはできません。
      • AWS CloudHSMのIPを指定します。
      • Generate Secretをクリックします。シークレットが生成されたら、Copy to Clipboardをクリックします。AWSシークレットマネージャで、Secretsに移動し、Store a new secretをクリックします。Other type of secretをクリックし、Plain Textを選択して、フィールドに生成したシークレットを貼り付けます。DefaultEncryptionKeyオプションを選択し、Nextをクリックします。詳細については、 チュートリアル:シークレットの作成と取得を参照してください。次に、生成された秘密のARNをウィザードのSecret ARNフィールドに貼り付け、Provide Keystore Keyをクリックします。
    • 秘密鍵を直接アップロードする場合は、ダイアログが表示され、Private Keyフィールドにサーバ証明書の秘密鍵を貼り付けることができます。貼り付ける内容は、 -----BEGIN RSA PRIVATE KEY----- で始まり -----END RSA PRIVATE KEY-----で終わるようにしてください。秘密鍵が暗号化されている場合は、パスフレーズを入力して復号を有効にします。パスフレーズは1〜255文字です。Provide Keystore Keyをクリックします。


    注意

    入力した証明書が一致しないというエラーが表示される場合は、証明書またはキーに問題があります。証明書とキーをリロードして、正しいものであることを確認します。


  5. AWSキーマネージメントサービスを使用して 対称顧客マスターキー(CMK)を作成し、Network Security ロールをキーユーザとして追加 すると、アプライアンスで秘密鍵を暗号化して保存できます。IAMの役割を制限して、アプライアンスの特定のKMSリソースにのみアクセスできるようにします。生成されたARNをウィザードのKey Management ARNフィールドに貼り付け、Confirm and Deployをクリックします。


    注意

    エラーが発生した場合は、AWS Servicesに移動し、Key Management Service > Customer managed keys の順にクリックして、 Network Security ロールに適切な権限があることを確認します。リストで設定済みのCustomerマスターキーをクリックし、Key usersまでスクロールして、Addをクリックします。 Network Security ロールを選択し、Addをクリックします。キーポリシーの設定についての詳細 を参照してください。


  6. 設定を確認し、Deploy and Closeの順にクリックして、暗号化されたトラフィックの検査を開始します。

  7. Policy > TLS Inspection に移動し、[TLS Inspection]フィールドに Inspectingが表示されていることを確認します。検査ステータスの詳細を確認するには、行の任意の場所をクリックして展開し、問題の原因を追跡します。

    • Issue found – 証明書の期限切れなど、1つ以上の設定に問題があるにもかかわらず、暗号化されたトラフィックと暗号化されていないトラフィックが引き続き検査されることを示します。ベストプラクティスとして、すべての暗号化資産が存在し、有効で、最新であることを確認してください。
    • Not inspecting – 仮想アプライアンスがフォールバックモード(ユーザ開始または自動)であるか、プロキシサーバが見つからないか無効になっている(暗号資産が見つからないなどの理由で)ために、暗号化および非暗号化トラフィックが検査されていないことを示します。
    • Unknown – 仮想アプライアンスが不明な理由でプロキシサーバと通信していないことを示します。インスペクションの完全なステータスを提供する前に、この通信の問題を解決する必要があります。プロキシサーバが見つからない、または無効になっていないこと、および仮想アプライアンスがフォールバックモードでないことを確認します。

注意: 仮想アプライアンスでTLS検査ポリシーを設定した後は、TLSポリシーを編集できません。TLS設定は、ポリシーを完全に削除するまで有効です。TLSインスペクション戦略を変更する場合は、削除アイコンをクリックして既存のポリシーを削除し、新しいポリシーを作成します。


必要に応じて、 CloudWatch ログ設定でsslInspectionログを有効にすることで、TLS設定が機能していることを確認できます。詳細を表示

AzureのTLSインスペクションを設定する

Azureプラットフォームの場合、TLS検査ポリシーには次のものが必要です。

  • Azure Active Directory (AD)へのアクセス。また、 Azure サブスクリプション をAzure ADに関連付けてください。仮想アプライアンスでAzure ADへの認証を有効にするには、 マネージドID を作成し、 新しいIDにに役割を割り当てます。 マネージドIDの詳細
  • Azure Key Vaultへのアクセス。Azure Key Vaultからサーバ証明書と秘密鍵にアクセスするには、アプライアンスを認証および承認する必要があります。

    • 認証:システム割り当てまたはユーザ割り当てのマネージドID をアプライアンスに作成します。これにより、Azure ADを使用してAzure Key Vaultに対する認証が可能になり、コードに資格情報を保存する必要がなくなります。
    • Authorization: 証明書とシークレットにアクセスするために必要な権限を持つようにアプライアンスを設定します(Azure Key Vaultには秘密鍵として秘密鍵が保存されます)。最適なセキュリティを確保するには、必要最小限の権限のみを設定してください。Azureダッシュボードから、 YourKeyVault> Settings > Access Policies > Permission modelの順に選択し、次のいずれかのモデルを選択して権限を設定します。
      • Vaultアクセスポリシー: アプライアンスがシークレット、キー、および証明書に対して実行できるAzure Key Vault操作の種類を決定します。Webサーバの証明書にアクセスするには、仮想アプライアンスに List および Get certificate 権限が必要です。Webアプライアンスの秘密鍵にアクセスするには、仮想アプライアンスに GET シークレット権限が必要です。設定を保存してください。詳細を表示
      • Azure role-based access control (RBAC): さまざまな範囲レベル(サブスクリプション、リソースグループ、または個々のリソース)で詳細な権限を提供します。Azure RBACモデルでは、権限の範囲をより詳細に定義できます。詳細を表示
    • 秘密鍵へのアクセス: 証明書を作成するか、Azure Key Vaultにインポートする場合は、アプライアンスが証明書に関連付けられた秘密鍵にもアクセスできるように、証明書ポリシーをエクスポート可能に設定します。
  • プロキシするサーバとその秘密鍵へのアクセス。TLS検査には複数のプロキシを設定できますが、一度に設定できるプロキシは1つだけです。サーバを追加するには、 Network > Appliances > appliancename ページに移動します。

  • 単一の管理対象の Network Security 仮想アプライアンス。TLS検査用に複数のアプライアンスを設定できますが、一度に設定できるアプライアンスは1つだけです。アプライアンスのバージョンは2021.8.0.11159以上である必要があります。スケーリンググループまたはスケールセットに属するApplianceは現在サポートされていません。
  • 保護されたIPアドレスを持つ単一のサーバ、またはロードバランサの背後で実行されるサーバのCIDR。たとえば、 192.0.2.0 、CIDRを使用する場合は 198.51.100.0/24です。サブネットの範囲は8〜32です。サーバのIPを取得するには、 仮想マシンのプライベートIPアドレス情報の取得を参照してください。
  • サーバの公開証明書。Azure Key Vaultからのアクセスを有効にできます。

Azureプラットフォームを使用してTLSを設定するには、次の手順に従います。

  1. ポリシーに適切なIAMロールを設定します。 Key Vaultの役割を参照してください。

  2. Azure Key Vaultを設定します。詳細を表示

  3. Policy > TLS Inspection に移動し、 Configure TLS Inspectionをクリックして、設定ウィザードを開始します。

Configure TLS Inspection 設定ウィザードで、次の手順を実行します。

  1. 復号およびインバウンドTLSトラフィック検査を有効にする管理対象仮想アプライアンスを選択します。Provide Serverをクリックします。


    注意

    最大4つの管理対象仮想アプライアンスでTLS検査を有効にできますが、一度に有効にできるのは1つだけです。この機能を備えたアプライアンスが5台以上必要な場合は、 サポートレポートを開きます。選択したアプライアンスのバージョンで複数アプライアンスのTLS設定がサポートされていない場合は、ウィザードによって通知され、その選択を続行できなくなります。


  2. 複数のサーバプロキシを設定できますが、一度に1つしか設定できません。10件を超えるプロキシが必要な場合は、 サポートレポートを開きます。Server IPフィールドに、保護するサーバのIPアドレスを入力します。このIPアドレスを取得するには、 仮想マシンのプライベートIPアドレス情報の取得を参照してください。 Provide Public Certificateをクリックします。

  3. Certificateフィールドに、Azure Key VaultのURI(Azure Key Vaultの作成後に表示されるプロパティの1つです。例: https://<your-unique-keyvault-name>.vault.azure.net/)を入力するか、公開証明書識別子の参照リンク(例: https://<your-unique-keyvault-name>/certificates/your-certificate-name)を指定します。Confirm and Deployをクリックします。

  4. 設定を確認し、Deploy and Closeをクリックして、暗号化されたトラフィックの検査を開始します。

  5. Policy > TLS Inspection に移動し、[TLS Inspection]フィールドに Inspectingが表示されていることを確認します。検査ステータスの詳細を確認するには、行の任意の場所をクリックして展開し、問題の原因を追跡します。

    • Issue found – 証明書の期限切れなど、1つ以上の設定に問題があるにもかかわらず、暗号化されたトラフィックと暗号化されていないトラフィックが引き続き検査されることを示します。ベストプラクティスとして、すべての暗号化資産が存在し、有効で、最新であることを確認してください。
    • Not inspecting – 仮想アプライアンスがフォールバックモード(ユーザ開始または自動)であるか、プロキシサーバが見つからないか無効になっている(暗号資産が見つからないなどの理由で)ために、暗号化および非暗号化トラフィックが検査されていないことを示します。
    • Unknown – 仮想アプライアンスが不明な理由でプロキシサーバと通信していないことを示します。インスペクションの完全なステータスを提供する前に、この通信の問題を解決する必要があります。プロキシサーバが見つからない、または無効になっていないこと、および仮想アプライアンスがフォールバックモードでないことを確認します。


注意: 仮想アプライアンスでTLS検査ポリシーを設定した後は、TLSポリシーを編集できません。TLS設定は、ポリシーを完全に削除するまで有効です。TLSインスペクション戦略を変更する場合は、削除アイコンをクリックして既存のポリシーを削除し、新しいポリシーを作成します。