IPsec ポリシーの作成

カスタム IPsec ポリシーを使用すると、ネゴシエーションのフェーズ 2 で使用されるセキュリティパラメータを定義できます。 このフェーズでは、VPN とピア・デバイスが、フェーズ 1 で確立したセキュリティー・アソシエーションを使用して、送信するトラフィックおよびそのトラフィックの認証と暗号化の方法についてネゴシエーションします。

一貫したアルゴリズム選択を保証するために、 IBM Cloud VPN ゲートウェイとピアゲートウェイの両方で、IKE と IPsec のアルゴリズムと優先順位を正確に一致させます。 アルゴリズムの選択に影響する要因の詳細については、 サイト間VPN接続におけるIKEとIPsecの暗号化アルゴリズムはどのように選択されるのか?

コンソールでIPsecポリシーを作成する

コンソールでIPsecポリシーを作成するには、次の手順に従ってください

  1. 「VPC 用 VPN」の一覧ページから、[ サイト間ゲートウェイ] > [IPsec ポリシー ] を選択します。

  2. [ 作成 ] をクリックし、以下の情報を指定してください:

    • 場所- このIPsecポリシーに適用する地域を選択してください。
    • 名前 - IPsec ポリシーの名前を入力します。
    • リソース・グループ - この IPsec ポリシーのリソース・グループを選択します。
    • 暗号化- フェーズ 2 で使用する暗号化アルゴリズムを選択します。 デフォルトでは、最も強度の低いアルゴリズムが選択されます。 各フィールドで複数の値を選択し、優先順位で並べ替えることができる。 VPNゲートウェイはピアゲートウェイとネゴシエーションを行い、相互にサポートされる最適なアルゴリズムを選択する。
    • Authentication- フェーズ 2 で使用する認証アルゴリズムを選択します。 デフォルトでは、最も強度の低いアルゴリズムが選択されます。 複数の認証アルゴリズムを選択し、優先順位で並べ替えることができます。
    • Perfect Forward Secrecy- このオプションを有効にすると、Phase 2 の Re-key のたびに新しい Diffie-Hellman 交換が実行されるため、鍵が漏洩した場合でも、それまで暗号化されていたトラフィックは安全なまま維持されます。
    • ディフィー・ヘルマン・グループ(PFSが有効な場合)- フェーズ2の鍵交換に使用するDHグループを選択します。 デフォルトでは、最も低いDHグループが選択される。 複数のDHグループを選択し、優先順位で並び替えることができる。
    • 鍵の有効期間- フェーズ 2 トンネルの有効期間を秒単位で選択します。
  3. 「作成」 をクリックします。

  4. **「VPN 接続の詳細」**ページで、対象の IPsec ポリシーを使用するように **「IPsec ポリシー」**フィールドを設定します。

    IKE/IPsecネゴシエーションを成功させるには、各カテゴリ(認証、暗号化、PFグループ)で少なくとも1つの一致するアルゴリズムを両方のピアに設定します。 ピア間でこれらの設定を揃えることで、接続の失敗を避けることができる。

CLI からの IPsec ポリシーの作成

開始する前に、 CLI 環境をセットアップします

CLI から IPsec ポリシーを作成するには、次のコマンドを入力します

ibmcloud is ipsec-policy-create IPSEC_POLICY_NAME AUTHENTICATION_ALGORITHMS ENCRYPTION_ALGORITHMS PFSGS [--key-lifetime KEY_LIFETIME] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]

ここで、

  • IPSEC_POLICY_NAME- IPsec ポリシーの名前。
  • AUTHENTICATION_ALGORITHMS- 認証アルゴリズム。 ENCRYPTION_ALGORITHMS に複合モードアルゴリズム(aes128gcm16, aes192gcm16, aes256gcm16)が含まれる場合のみ、無効にしなければならない。のいずれか: disabled sha256, sha384, sha512, あるいは認証アルゴリズムのカンマ区切りリスト (sha384,sha256,sha512) のいずれか。アルゴリズムの順番は、ネゴシエーション時の優先度を決定する。
  • ENCRYPTION_ALGORITHMS- 暗号化アルゴリズム。 のいずれか: aes128 aes128gcm16, aes192, aes192gcm16, aes256, aes256gcm16, またはカンマで区切られた暗号化アルゴリズムのリスト (aes128,aes192,aes256)。アルゴリズムの順番は、ネゴシエーション中の優先順位を決定する。
  • PFSGS- 完全前方秘匿グループ。 のいずれか: disabled group_14, group_15, group_16, group_17, group_18, group_19, group_20, group_21, group_22, group_23, group_24, group_31, またはPFSグループのカンマ区切りリスト(group_14,group_15,group_16)。グループの順序は、ネゴシエーション中の優先順位を決定する。
  • --key-lifetime value - 鍵ライフタイム (秒単位)。 最大: 86400、最小: 1800。 デフォルト値は 3600です。
  • --resource-group-id の値- リソースグループの ID。 このオプションは --resource-group-name と同時に指定することはできません。
  • --resource-group-name 値- リソースグループの名前。 このオプションは --resource-group-id と同時に指定することはできません。
  • --output value - JSON 形式の出力を指定します。
  • -q, --quiet - 詳細な出力を非表示にします。

md5 および 認証アルゴリズム、 および DHグループ、および 暗号化アルゴリズムは、2022年9月20日に非推奨となり、コンソールではサポートされなくなりました。 sha1 group_2 group_5 triple_des

AUTHENTICATION_ALGORITHMSdisabled であるのは、 ENCRYPTION_ALGORITHMSaes128gcm16aes192gcm16、または aes256gcm16 のいずれかである場合に限る。

CLI からの IPsec ポリシーの更新

開始する前に、 CLI 環境をセットアップします

CLI から IPsec ポリシーを更新するには、次のコマンドを入力します

ibmcloud is ipsec-policy-update IPSEC_POLICY [--name NEW_NAME] [--authentication-algorithms AUTHENTICATION_ALGORITHMS] [--pfsgs PFSGS] [--encryption-algorithms ENCRYPTION_ALGORITHMS] [--authentication-algorithm AUTHENTICATION_ALGORITHM] [--pfs disabled | group_14 | group_15 | group_16 | group_17 | group_18 | group_19 | group_20 | group_21 | group_22 | group_23 | group_24 | group_31] [--encryption-algorithm aes128 | aes128gcm16 | aes192 | aes192gcm16 | aes256 | aes256gcm16] [--key-lifetime KEY_LIFETIME] [--output JSON] [-q, --quiet]

ここで、

  • --name- IPsec ポリシーの名前。

  • --authentication-algorithms- 認証アルゴリズムのカンマ区切りリスト(推奨)。 アルゴリズムの順序によって、ネゴシエーションにおける優先順位が決まります。

  • --authentication-algorithm- 認証アルゴリズム(非推奨)。 --encryption_algorithmaes128gcm16aes192gcm16、または aes256gcm16 の場合にのみ、無効にする必要があります。 のいずれか: disabled sha256 sha384sha512

  • --encryption-algorithms- カンマ区切りの暗号化アルゴリズムのリスト(推奨)。 アルゴリズムの順序によって、ネゴシエーションにおける優先順位が決まります。

  • --encryption-algorithm- 暗号化アルゴリズム(非推奨)。 aes128aes128gcm16aes192aes192gcm16aes256aes256gcm16 のいずれか。

  • --pfsgs- カンマで区切られた完全前方秘匿(Perfect Forward Secrecy)グループのリスト。 グループの順番によって、交渉中の優先順位が決まる。

  • --pfs- 完全前方秘匿グループ(非推奨)。 disabled, group_14, group_15, group_16, group_17, group_18, group_19, group_20, group_21, group_22, group_23, group_24, group_31 のいずれか。

    同じアルゴリズム・カテゴリーの単数形と配列ベースのプロパティを、1つのコマンドで混在させないでください。

コマンドの例

CLI から IPsec ポリシーを作成するための authentication algorithmspfsgsencryption algorithms の特異値は非推奨である。 代わりに複数のカンマ区切り値を使用する。

  • カンマ区切りの認証アルゴリズム(SHA 512 と SHA 256)、暗号化アルゴリズム(AES 256、AES 192、AES 128)、完全前方秘匿グループ( group_14 と group_15 )を使用して IPsec ポリシーを作成する:

    ibmcloud is ipsec-policy-create my-ipsec-policy sha512,sha256 aes256,aes192,aes128 group_14,group_15
    
  • 単一の認証アルゴリズム(SHA 256)、単一の暗号化アルゴリズム(AES 128)、および DH Group 14 を使用して IPsec ポリシーを作成する:

    ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14
    
  • 同じパラメーターと 3600 秒の存続時間を使用して IPsec ポリシーを作成します。

    ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14 --key-lifetime 3600
    
  • 同じパラメーターとリソース・グループ ID を使用して IPsec ポリシーを作成します。

    ibmcloud is ipsec-policy-create my-ipsec-policy sha256 aes128 group_14 --resource-group-id fee82deba12e4c0fb69c3b09d1f12345 --output JSON
    
  • IPsec ポリシーを更新して、名前を変更し、認証アルゴリズムを SHA 512 と SHA 256 に、暗号化アルゴリズムを AES 256 と AES 192 に、完全前方秘匿グループを group_15 と group_16:

    ibmcloud is ipsec-policy-update my-ipsec-policy --name new-ipsec-policy --authentication-algorithms sha512,sha256 --encryption-algorithms aes256,aes192 --pfsgs group_15,group_16 --output JSON
    
  • GCM 暗号化(認証無効)で IPsec ポリシーを更新する:

    ibmcloud is ipsec-policy-update $ipsec_policy \
       --authentication-algorithms disabled \
       --encryption-algorithms aes128gcm16,aes256gcm16
    

    encryption_algorithms リストに GCM ベースのアルゴリズム(aes128gcm16aes192gcm16aes256gcm16 )が含まれている場合のみ、 authentication_algorithmsdisabled に設定しなければならない。 GCM アルゴリズムは、暗号化と組み込みのデータ完全性(認証)の両方を単一の操作の一部として提供するので、別の認証アルゴリズム( sha256sha512 など)を指定する必要はない。

API を使用した IPsec ポリシーの作成

IPsecネゴシエーションのための特異プロパティ authentication_algorithmdh_groupencryption_algorithmpfs は非推奨である。 配列ベースのプロパティを使用して IPsec ポリシーを作成する。 APIを使用する際のIPsecポリシーの単数および配列ベースのアルゴリズムプロパティの詳細については、 複数のIKEおよびIPsecアルゴリズムへの更新を 参照してください。

配列ベースのプロパティを使用して複数のアルゴリズムを持つ IPsec ポリシーを作成するには (推奨)、以下の手順に従います:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する追加の変数を格納します。次に例を示します。

ResourceGroupId - get resource groups コマンドを使用してリソース・グループ ID を確認してから、変数に設定します。

 export ResourceGroupId=<your_resourcegroup_id>
  1. IPsecポリシーを作成する:

       curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
            "name": "my-new-ipsec-policy",
            "authentication_algorithms": ["sha256", "sha512"],
            "encryption_algorithms": ["aes128", "aes256"],
            "pfs_groups": ["group_14", "group_15", "group_16", "group_17", "group_18"],
            "resource_group": {
              "id": "'$ResourceGroupId'"
            }
          }'
    

IPsec ポリシーを作成し、 encryption_algorithms を GCM-based algorithms に設定し、 authentication_algorithmsdisabled に設定する:

   curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \
   -H "Authorization: Bearer $iam_token" \
   -d '{
      "name": "gcm-ipsec-policy",
      "encryption_algorithms": ["aes128gcm16","aes192gcm16","aes256gcm16"],
      "authentication_algorithms": ["disabled"],
      "pfs_groups": ["group_14","group_15","group_16","group_17","group_18"],
      "resource_group": {
        "id": "'$ResourceGroupId'"
      }
    }'

authentication_algorithms プロパティは、 encryption_algorithms リストに GCM ベースのアルゴリズム(aes128gcm16aes192gcm16aes256gcm16 )が含まれている場合に限り、 disabled に設定しなければならない。 GCM アルゴリズムは、暗号化と組み込みのデータ完全性(認証)の両方を単一の操作の一部として提供するので、別の認証アルゴリズム( sha256sha512 など)を指定する必要はない。

特異なプロパティ (非推奨) を使用して API で IPsec ポリシーを作成するには、以下の手順に従います:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する追加の変数を格納します。次に例を示します。

ResourceGroupId - get resource groups コマンドを使用してリソース・グループ ID を確認してから、変数に設定します。

 export ResourceGroupId=<your_resourcegroup_id>
  1. IPsecポリシーを作成する:
   curl -X POST "$vpc_api_endpoint/v1/ipsec_policies?version=$api_version&generation=2" \
     -H "Authorization: Bearer $iam_token" \
     -d '{
        "name": "my-new-ipsec-policy",
        "authentication_algorithm": "sha256",
        "encryption_algorithm": "aes128",
        "pfs": "group_14",
        "resource_group": {
          "id": "'$ResourceGroupId'"
        }
      }'

APIでIPsecポリシーを更新する

配列ベースのプロパティを使用して API で IPsec ポリシーを更新するには (推奨)、以下の手順に従います:

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する追加の変数を格納します。次に例を示します。

ResourceGroupId - get resource groups コマンドを使用してリソース・グループ ID を確認してから、変数に設定します。

export ResourceGroupId=<your_resourcegroup_id>
  1. IPsecポリシーを更新する:
   curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
     -H "Authorization: Bearer $iam_token" \
     -d '{
         "name": "my-updated-ipsec-policy",
         "authentication_algorithms": ["sha512", "sha384", "sha256"],
         "encryption_algorithms": ["aes256", "aes128"],
         "pfs_groups": ["group_18", "group_17", "group_16", "group_15", "group_14"],
      }'

特異なプロパティ (非推奨) を使用して API で IPsec ポリシーを更新するには、以下の手順に従います:

非推奨の単数プロパティまたは配列ベースのプロパティのいずれかを使用して、IPsec ポリシーを更新できます。 どちらの形式も受け入れられるが、同じアルゴリズムカテゴリの単数形と配列ベースの プロパティを、1つのリクエストの中で混在させてはならない。

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する追加の変数を格納します。次に例を示します。

ResourceGroupId - get resource groups コマンドを使用してリソース・グループ ID を確認してから、変数に設定します。

export ResourceGroupId=<your_resourcegroup_id>
  1. IPsecポリシーを更新する:
   curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
     -H "Authorization: Bearer $iam_token" \
     -d '{
         "name": "my-updated-ipsec-policy",
         "authentication_algorithm": "sha512",
         "encryption_algorithm": "aes256",
           "pfs": "group_18",
      }'

サイト間 VPN ゲートウェイの API の完全なセットを表示するには、 VPC API リファレンスを 参照してください。

Terraform を使用した IPsec ポリシーの作成

次の例では、Terraform を使用して IPsec ポリシーを作成できます:

   resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
     name                     = "my-ipsec-policy"
     authentication_algorithm = "sha256"
     encryption_algorithm     = "aes128"
     pfs                      = "group_14"
   }
  1. 次の例では、Terraform を使用して、配列ベースのプロパティを持つ IPsec ポリシーを作成できます(推奨)
   resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
     name                     = "my-ipsec-policy"
     authentication_algorithms = ["sha512", "sha384"]
     encryption_algorithms     = ["aes128", "aes192"]
     pfs_groups                = ["group_14", "group_15"]
   }
  1. 次の例では、Terraform を使用して、単一のプロパティを持つ IPsec ポリシー(非推奨)を作成できます:
   resource "ibm_is_ipsec_policy" "is_ipsec_policy" {
     name                     = "my-ipsec-policy"
     authentication_algorithm = "sha256"
     encryption_algorithm     = "aes128"
     pfs                      = "group_14"
   }

1つのリクエスト内で、同じアルゴリズムカテゴリに属する単数形のプロパティと配列ベースのプロパティを混在させないでください。

詳細については、 Terraformレジストリ を参照してください。

次のステップ

IPsec ポリシーを作成したら、必要に応じて以下のタスクを実行します:

関連リンク