複数のIKEおよびIPsecアルゴリズムへのアップデート

VPN for VPC IKEおよびIPsecポリシーに対して、複数のアルゴリズムを設定することをサポートしています。 複数のアルゴリズムを使用することで、互換性、柔軟性、セキュリティを向上させることができる。

以下の手順に従って、非推奨となった単一のアルゴリズムプロパティから、複数のアルゴリズムプロパティへ移行してください。

開始前に

VPNポリシーを更新する前に、以下の情報を確認してください。

非推奨の特異アルゴリズム・プロパティ

2026年5月29日をもって、VPN IKEおよびIPsecの特異アルゴリズムプロパティは非推奨となります。 個別のプロパティで設定された既存のVPN接続は、変更なしに引き続き機能します。 ただし、できるだけ早く配列ベースのアルゴリズムプロパティに更新することをお勧めします。

IKEポリシーの単数および配列ベースのアルゴリズム特性
IKE 特異プロパティ(非推奨) IKE マルチプロパティ(推奨)
authentication_algorithm authentication_algorithms
encryption_algorithm encryption_algorithms
dh_group dh_groups
IPsecポリシーのための単数および配列ベースのアルゴリズム特性
IPsec 特異プロパティ(非推奨) IPsecの複数プロパティ(推奨)
authentication_algorithm authentication_algorithms
encryption_algorithm encryption_algorithms
pfs pfs_groups

VPN環境において、異なる暗号アルゴリズムをサポートするピアとの互換性が必要な場合や、下位互換性を維持しつつより強力な暗号化を優先したい場合には、複数のアルゴリズムを使用してください。

重要な考慮事項

  • 非推奨となった単一のアルゴリズムプロパティを含むカスタムIKEまたはIPsecポリシーを使用するVPN接続では、ネゴシエーションの失敗や相互運用性の問題が発生する可能性があります。
  • 新しいIKEおよびIPsecポリシーは、配列ベースのアルゴリズムプロパティを使用する場合にのみ作成できます。
  • 既存のIKEまたはIPsecポリシーを更新すると、接続が再確立されるまでの間、VPNトンネルが一時的に切断されることがあります。
  • ディザスタリカバリ手順、自動化、スクリプト、API統合、またはCLIワークフローが非推奨の特異点プロパティを参照している場合は、適宜更新してください。
  • 現在のIKEとIPsecのポリシーを見直して、使用中のアルゴリズムを確認する。
  • 対向 VPN ゲートウェイが、 IBM Cloud で設定する予定のアルゴリズムをサポートしていることを確認してください。
  • IBM Cloud VPN ゲートウェイを更新する前に、IKE と IPsec ネゴシエーションのためにピア VPN ゲートウェイ上でマッチングアルゴリズムを設定する。
  • サービスの中断を最小限に抑えるために、メンテナンスウィンドウの間にポリシーの更新を計画する。

APIの更新動作を理解する

APIは、単数および配列ベースのアルゴリズム・プロパティを自動的に同期する。 ポリシーを更新する前に、以下の動作と制限を確認してください。

IKEバージョンの互換性
配列ベースのアルゴリズム・プロパティは、 IKEv2 でのみサポートされています。 IKEv1 を使用する場合は、各カテゴリごとに単数形のプロパティを使用して、単一のアルゴリズムを設定する必要があります。
  • 配列ベースのプロパティで IKEv2 を使用します:
{
   "ike_version": 2,
   "authentication_algorithms": ["sha512", "sha256"],
   "encryption_algorithms": ["aes256", "aes128"]
}
  • IKEv1 を単数形のプロパティで使用します:
{
   "ike_version": 1,
   "authentication_algorithm": "sha256",
   "encryption_algorithm": "aes128"
}

IKEv1 は、1つのカテゴリーにつき1つのアルゴリズムしかサポートしていない。 IKEv1 を使用する VPN 接続は、配列ベースの IKE や IPsec アルゴリズムのプロパティをサポートしない。 可能な限り IKEv2。

自動同期
配列ベースのプ ロパテ ィ (authentication_algorithms, encryption_algorithms, dh_groups, pfs_groups ) を更新す る と、 対応す る 単数プ ロパテ ィ (authentication_algorithm, encryption_algorithm, dh_group, pfs ) も 自動的に更新 さ れます。 同様に、単数のプロパティを更新すると、関連する配列ベースのプロパティが自動的に更新される。 例としては、以下を参照:
読み取り専用インジケーター
複数のアルゴリズムが設定されている場合、特異なプロパティ(authentication_algorithmencryption_algorithm )は、APIレスポンス内で読み取り専用のインジケーター値を返します。 以下に例を示します。
  • authentication_algorithm 戻り値 "multiple"
  • encryption_algorithm 戻り値 "multiple"
  • dh_group 戻り値 65535

これらの値はレスポンスでのみ返され、 PATCH リクエストでは送信できない。

{
   "authentication_algorithms": ["sha256", "sha384", "sha512"],
   "authentication_algorithm": "multiple",
   "dh_groups": [14, 15, 16],
   "dh_group": 65535,
   "encryption_algorithms": ["aes128", "aes256"],
   "encryption_algorithm": "multiple"
}

配列ベースのプロパティにアルゴリズムが1つだけ設定されている場合、singularプロパティは "multiple" ではなく、設定された値を返します。

{
   "authentication_algorithms": ["sha256"],
   "authentication_algorithm": "sha256",
   "dh_groups": [14],
   "dh_group": 14,
   "encryption_algorithms": ["aes128"],
   "encryption_algorithm": "aes128"
}
物件混合制限
同じアルゴリズムカテゴリの単数プロパティと配列ベースのプロパティを、1つのリクエストで混在させないでください。 1つのリクエストにつき1つのアプローチを選択してください。
  • 正しい例:この例にはIKEのアルゴリズム・プロパティが含まれており、すべてのカテゴリに配列ベースのプロパティのみが使用されている:
curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha256", "sha384", "sha512"],
     "dh_groups": [14, 15, 16],
     "encryption_algorithms": ["aes128", "aes256"]
   }'
  • 誤った例:この例には、IKEのアルゴリズム・プロパティが含まれており、同じカテゴリに単数ベースと配列ベースの両方のプロパティが混在している:
curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithm": "sha512",
     "authentication_algorithms": ["sha256", "sha384", "sha512"],
     "dh_groups": [14, 15, 16],
     "encryption_algorithms": ["aes128", "aes256"]
   }'
GCM アルゴリズムの要件と制限
encryption_algorithms プロパティに GCM ベースのアルゴリズム(aes128gcm16aes192gcm16aes256gcm16 )が含まれている場合、 authentication_algorithms プロパティは ["disabled"] に設定する必要があります。
  • 正しい例: encryption_algorithms 配列に GCM ベースのアルゴリズムが含まれている場合、IPsecアルゴリズムのプロパティが表示されます:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["disabled"],
     "encryption_algorithms": ["aes256gcm16", "aes192gcm16"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
  • 誤った例:IPsec のアルゴリズムプロパティが表示されており、 encryption_algorithms 配列に GCM ベースのアルゴリズムが含まれている場合:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha256"],
     "encryption_algorithms": ["aes256gcm16", "aes192gcm16"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'

GCM アルゴリズムは、暗号化とビルトイン認証を単一の操作の一部として提供する。 sha256sha512 と GCM 暗号化アルゴリズムなど、別々の認証アルゴリズムを設定しないでください。

GCM と GCM 以外の暗号化アルゴリズムを、同じポリシー内で混在させないでください。 これらを混在させると、設定の競合やネゴシエーションの失敗を引き起こす可能性があります。

: authentication_algorithms ["disabled"]`` に設定されている場合、 GCM から GCM 以外の暗号化アルゴリズムに変更する際は、 authentication_algorithms も更新する必要があります。

  • 正しい例 encryption_algorithmsauthentication_algorithms の両方のプロパティを更新する:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["sha512", "sha256"],
     "encryption_algorithms": ["aes256", "aes128"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
  • 誤った例: GCM 以外のアルゴリズム (aes128, aes192, aes256) で encryption_algorithms プロパティのみが更新される場合を示す:
curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
   -H "Authorization: $iam_token" \
   -d '{
     "authentication_algorithms": ["disabled"],
     "encryption_algorithms": ["aes256", "aes128"],
     "pfs_groups": ["group_14", "group_15", "group_16"]
   }'
アルゴリズム検証ルール
リクエストのすべてのアルゴリズム値が有効で、一意で、空でないことを確認してください。 サポートされているアルゴリズム名のみを使用し、重複を避け、各配列に少なくとも1つの値を指定する。 無効な入力、重複した入力、空の入力はバリデーションエラーとなります。
  • 正しい例:アルゴリズム値を更新し、サポートされているアルゴリズムと値がすべてのカテゴリーで使用される:
{
   "authentication_algorithms": ["sha512", "sha256"],
   "dh_groups": [14, 15],
   "encryption_algorithms": ["aes256", "aes192", "aes128"]
}
  • 誤った例:同じアルゴリズムカテゴリで重複した値が使用されている場合、アルゴリズム値を更新します:
{
   "authentication_algorithms": ["sha512", "sha256"],
   "dh_groups": [14, 15],
   "encryption_algorithms": ["aes256", "aes256", "aes128"]
}

APIによるIKEポリシーの更新

以下の手順に従って、IKEポリシーを単一アルゴリズムから複数アルゴリズムに更新してください。

始める前に、 API環境をセットアップして ください。

API を使用して IKE ポリシーを更新するには、以下の手順に従ってください

  1. IKEポリシーIDを変数に格納する:

    export ike_policy_id=<your_ike_policy_id>
    

    IKEポリシーIDを調べるには、 list IKE policies コマンドを使用します。

  2. 複数のアルゴリズムを使用するようにIKEポリシーを更新する。 単数形のプロパティを、対応する配列ベースのプロパティに置き換える。

    authentication_algorithms- 認証アルゴリズムの配列。 オプション sha256 sha384 sha512.

    dh_groups- Diffie-Hellman グループの配列。 オプション 14 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 31.

    encryption_algorithms- 暗号化アルゴリズムの配列。 オプション aes128 aes192 aes256.

    curl -X PATCH "$vpc_api_endpoint/v1/ike_policies/$ike_policy_id?version=$api_version&generation=2" \
      -H "Authorization: $iam_token" \
      -d '{
        "authentication_algorithms": ["sha256", "sha384", "sha512"],
        "dh_groups": [14, 15, 16],
        "encryption_algorithms": ["aes128", "aes256"]
      }'
    

IKEポリシー更新の例

IKEポリシーの配列ベースのプロパティ encryption_algorithmsauthentication_algorithmsdh_groups を更新すると、対応する特異プロパティ encryption_algorithmauthentication_algorithmdh_group が自動的に更新されます。 同様に、単数プロパティのいずれかを更新すると、関連する配列ベースのプロパティも自動的に更新されます。

以下の例では、 PATCH リクエストが単数プロパティと配列プロパティ の両方にどのように影響するかを示している:

例1:単一から複数のアルゴリズム

  • この例では、単一アルゴリズムから複数アルゴリズムへのパッチ動作を示している。 現在の状態は、単一値プロパティ encryption_algorithmaes128 に設定され、配列ベースのプロパティ encryption_algorithmsaes128 のみを含んでいる。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "aes128",
       "encryption_algorithms": [
          "aes128"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    
  • PATCH リクエストでは、配列ベースのプロパティ encryption_algorithms が更新され、 aes128aes256 の両方が指定される。

       {
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ]
       }
    
  • 正常な応答は、次の例のようになります。 この応答において、単数形のプロパティ encryption_algorithm は、読み取り専用の値 "multiple" を返します。これは、現在複数のアルゴリズムが設定されていることを示しています。 このフィールドは、 `PATCH` リクエストを通じて直接変更することはできません。 配列ベースのプロパティ ` `encryption_algorithms` ` が更新され、` `aes128` ` と ` `aes256 の両方が含まれるようになりました。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    

例2:複数のアルゴリズムから単一のアルゴリズムへ

  • この例では、複数のアルゴリズムから単一のアルゴリズムへのパッチ動作を示している。 現在の状態では、単一値のプロパティ encryption_algorithm "multiple" に設定されており、配列ベースのプロパティ ` `encryption_algorithms` ` には ` `aes128` ` および ` `aes256 が含まれています。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    
  • PATCH リクエストでは、配列ベースのプロパティ encryption_algorithms が更新され、 aes256 のみが指定される。

       {
       "encryption_algorithms": [
          "aes256"
       ]
       }
    
  • 正常な応答は、次の例のようになります。 この応答では、単一値プロパティ encryption_algorithm が自動的に aes256 に設定され、アルゴリズムが 1 つだけ構成されていることを示しています。 配列ベースのプロパティ ` `encryption_algorithms` ` が更新され、` `aes256 が追加されました。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "created_at": "2025-03-09T01:40:25.782663Z",
       "dh_group": 14,
       "dh_groups": [
          14
       ],
       "encryption_algorithm": "aes256",
       "encryption_algorithms": [
          "aes256"
       ],
       "id": "r006-e98f46a3-1e4e-4195-b4e5-b8155192689d",
       "ike_version": 2,
       "key_lifetime": 28800,
       "name": "my-ike-policy",
       "negotiation_mode": "main",
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ike_policy"
       }
    

APIによるIPsecポリシーの更新

以下の手順に従って、IPsec ポリシーを単数から配列ベースのアルゴリズム・プロパティに更新してください。

始める前に、 API環境をセットアップして ください。

API を使用して IPsec ポリシーを更新するには、以下の手順に従ってください

  1. IPsec ポリシー ID を変数に格納する:

    export ipsec_policy_id=<your_ipsec_policy_id>
    

    IPsec ポリシー ID を見つけるには、 list IPsec policies コマンドを使用します。

  2. 複数のアルゴリズムを使用するようにIPsecポリシーを更新する。 単数形のプロパティを、対応する配列ベースのプロパティに置き換える。

    authentication_algorithms- 認証アルゴリズムの配列。 オプション sha256 sha384, sha512, disabled.

    encryption_algorithms- 暗号化アルゴリズムの配列。 オプション aes128 aes192, aes256, aes128gcm16, aes192gcm16, aes256gcm16.

    pfs_groups- 完全な前方秘匿グループの配列。 オプション 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.

    curl -X PATCH "$vpc_api_endpoint/v1/ipsec_policies/$ipsec_policy_id?version=$api_version&generation=2" \
      -H "Authorization: $iam_token" \
      -d '{
        "authentication_algorithms": ["sha256", "sha384", "sha512"],
        "encryption_algorithms": ["aes128", "aes256"],
        "pfs_groups": ["group_14", "group_15", "group_16"]
      }'
    

IPsecポリシーの更新例

IPsec ポリシーの配列ベースのプロパティ encryption_algorithmsauthentication_algorithmspfs_groups を更新すると、対応する単一値のプロパティ encryption_algorithmauthentication_algorithmpfs が自動的に更新される。 同様に、単一値プロパティのいずれかを更新すると、関連する配列ベースのプロパティも自動的に更新されます。

以下の例では、 PATCH リクエストが単数プロパティと配列プロパティ の両方にどのように影響するかを示している:

例1:単一から複数のアルゴリズム

  • この例では、単一アルゴリズムから複数アルゴリズムへのパッチ動作を示している。 現在の状態は、単一値プロパティ encryption_algorithmaes128 に設定され、配列ベースのプロパティ encryption_algorithmsaes128 のみを含んでいる。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "aes128",
       "encryption_algorithms": [
          "aes128"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    
  • PATCH リクエストでは、配列ベースのプロパティ encryption_algorithms が更新され、 aes128aes256 の両方が指定される。

       {
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ]
       }
    
  • 正常な応答は、次の例のようになります。 この応答では、単一値プロパティ encryption_algorithm が自動的に読み取り専用値 "multiple"`` に設定され、これにより複数のアルゴリズムが設定されたことが示されます。 このフィールドは、 PATCH リクエストを通じて直接変更することはできません。 配列ベースのプロパティ「 encryption_algorithms 」には、 aes128aes256 の両方が含まれるようになりました。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    

例2:複数のアルゴリズムから単一のアルゴリズムへ

  • この例では、複数のアルゴリズムから単一のアルゴリズムへのパッチ動作を示している。 現在の状態では、単一値のプロパティ encryption_algorithm "multiple" に設定されており、配列ベースのプロパティ ` `encryption_algorithms` ` には ` `aes128` ` および ` `aes256 が含まれています。

       {
       "authentication_algorithm": "sha256",
       "authentication_algorithms": [
          "sha256"
       ],
       "connections": [],
       "created_at": "2025-03-09T01:46:00.785105Z",
       "encapsulation_mode": "tunnel",
       "encryption_algorithm": "multiple",
       "encryption_algorithms": [
          "aes128",
          "aes256"
       ],
       "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
       "key_lifetime": 3600,
       "name": "my-ipsec-policy",
       "pfs": "group_14",
       "pfs_groups": [
          "group_14"
       ],
       "resource_group": {
          "id": "fee82deba12e4c0fb69c3b09d1f12345",
          "name": "Default"
       },
       "resource_type": "ipsec_policy",
       "transform_protocol": "esp"
       }
    
  • PATCH リクエストでは、配列ベースのプロパティ encryption_algorithms が更新され、 aes256 のみが指定される。

       {
       "encryption_algorithms": [
          "aes256"
       ]
       }
    
  • 正常な応答は、次の例のようになります。 この応答では、単一値プロパティ encryption_algorithm が自動的に aes256 に設定され、アルゴリズムが 1 つだけ構成されていることを示しています。 配列ベースのプロパティ ` `encryption_algorithms` ` が更新され、` `aes256 が追加されました。

        {
        "authentication_algorithm": "sha256",
        "authentication_algorithms": [
           "sha256"
        ],
        "connections": [],
        "created_at": "2025-03-09T01:46:00.785105Z",
        "encapsulation_mode": "tunnel",
        "encryption_algorithm": "aes256",
        "encryption_algorithms": [
           "aes256"
        ],
        "id": "r006-51eae621-dbbc-4c47-b623-b57a43c19876",
        "key_lifetime": 3600,
        "name": "my-ipsec-policy",
        "pfs": "group_14",
        "pfs_groups": [
           "group_14"
        ],
        "resource_group": {
           "id": "fee82deba12e4c0fb69c3b09d1f12345",
           "name": "Default"
        },
        "resource_type": "ipsec_policy",
        "transform_protocol": "esp"
        }