すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:ALIYUN::VPC::VpnAttachment

最終更新日:Mar 17, 2025

ALIYUN::VPC::VpnAttachment は、IPsec 接続を作成するために使用されます。 IPsec 接続を作成した後、転送ルータに IPsec 接続を関連付けることができます。

構文

{
  "Type": "ALIYUN::VPC::VpnAttachment",
  "Properties": {
    "LocalSubnet": String,
    "CustomerGatewayId": String,
    "AutoConfigRoute": Boolean,
    "Name": String,
    "EffectImmediately": Boolean,
    "BgpConfig": Map,
    "RemoteSubnet": String,
    "RemoteCaCert": String,
    "IpsecConfig": Map,
    "NetworkType": String,
    "HealthCheckConfig": Map,
    "EnableNatTraversal": Boolean,
    "IkeConfig": Map,
    "EnableDpd": Boolean
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

LocalSubnet

String

はい

はい

VPC 側の CIDR ブロック。 CIDR ブロックは、フェーズ 2 ネゴシエーションで使用されます。

複数の CIDR ブロックはコンマ (,) で区切ります。例: 192.168.1.0/24,192.168.2.0/24。

IPsec 接続では、次のルーティングモードがサポートされています。

  • LocalSubnetRemoteSubnet を 0.0.0.0/0 に設定すると、IPsec 接続のルーティングモードは宛先ルーティングモードになります。

  • LocalSubnetRemoteSubnet を 0.0.0.0/0 以外の CIDR ブロックに設定すると、IPsec 接続のルーティングモードは保護されたデータフローになります。

例: 10.1.1.0/24,10.1.2.0/24。

CustomerGatewayId

String

はい

いいえ

カスタマーゲートウェイの ID。

なし。

AutoConfigRoute

Boolean

いいえ

はい

ルートを自動的に構成するかどうかを指定します。

有効な値:

  • true (デフォルト)

  • false

Name

String

いいえ

はい

IPsec 接続の名前。

なし。

EffectImmediately

Boolean

いいえ

はい

IPsec 接続の構成をすぐに有効にするかどうかを指定します。

有効な値:

  • true: IPsec 接続の構成がすぐに有効になります。この場合、IPsec 接続の構成が完了するとすぐに、IPsec ネゴシエーションが開始されます。

  • false (デフォルト): IPsec 接続の構成はすぐには有効になりません。この場合、インバウンドトラフィックが受信されたときに IPsec ネゴシエーションが開始されます。

BgpConfig

Map

いいえ

はい

ボーダーゲートウェイプロトコル (BGP) の構成。

詳細については、「BgpConfig プロパティ」をご参照ください。

説明

BGP 構成を追加する前に、BGP 動的ルーティングの動作メカニズムと制限事項をよく理解しておくことをお勧めします。詳細については、「IPsec 接続のルートを構成する」をご参照ください。

Alibaba Cloud への BGP 接続を確立するには、プライベート自律システム番号 (ASN) を使用することをお勧めします。プライベート ASN の範囲の詳細については、関連ドキュメントを参照してください。

例:

{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}

RemoteSubnet

String

はい

はい

データセンター側の CIDR ブロック。 CIDR ブロックは、フェーズ 2 ネゴシエーションで使用されます。

複数の CIDR ブロックはコンマ (,) で区切ります。例: 192.168.3.0/24,192.168.4.0/24。

IPsec 接続では、次のルーティングモードがサポートされています。

  • LocalSubnetRemoteSubnet を 0.0.0.0/0 に設定すると、IPsec 接続のルーティングモードは宛先ルーティングモードになります。

  • LocalSubnetRemoteSubnet を 0.0.0.0/0 以外の CIDR ブロックに設定すると、IPsec 接続のルーティングモードは保護されたデータフローになります。

例: 10.1.3.0/24,10.1.4.0/24.

RemoteCaCert

String

いいえ

いいえ

商密 (SM) VPN ゲートウェイを使用して IPsec 接続を作成する場合のピア CA 証明書。

例:

-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----

IpsecConfig

Map

いいえ

はい

フェーズ 2 ネゴシエーションの構成。

詳細については、「IpsecConfig プロパティ」をご参照ください。

例:

{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}

NetworkType

String

いいえ

いいえ

IPsec 接続のネットワークタイプ。

有効な値:

  • パブリック (デフォルト): インターネット。 IPsec 接続は、インターネット経由の暗号化された通信トンネルとして機能します。

  • 非公開: プライベートネットワーク。 IPsec 接続は、プライベートネットワークを介した暗号化された通信トンネルとして機能します。

HealthCheckConfig

Map

いいえ

はい

ヘルスチェックの構成。

詳細については、「HealthCheckConfig プロパティ」をご参照ください。

例:

{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3","Policy": "revoke_route"}

EnableNatTraversal

Boolean

いいえ

はい

NAT 越え機能を有効にするかどうかを指定します。

有効な値:

  • true (デフォルト): NAT 越え機能を有効にします。この機能を有効にすると、イニシエータはインターネットキー交換 (IKE) ネゴシエーション中に UDP ポートを確認せず、IPsec-VPN トンネルに沿って NAT ゲートウェイデバイスを自動的に検出できます。

  • false: NAT トラバーサル機能を無効にします。

IkeConfig

Map

いいえ

はい

フェーズ 1 ネゴシエーションの構成。

詳細については、「IkeConfig プロパティ」をご参照ください。

EnableDpd

ブール値

いいえ

はい

デッドピア検出(DPD)機能を有効にするかどうかを指定します。

有効な値:

  • true(デフォルト):DPD 機能を有効にします。 IPsec 接続のイニシエータは、ピアの存在と可用性を確認するために DPD パケットを送信します。 指定された期間内にピアから有効な応答が受信されない場合、接続は失敗します。 ISAKMP セキュリティアソシエーション(SA)と IPsec SA は削除されます。 IPsec-VPN トンネルも削除されます。

  • false:DPD 機能を無効にします。 IPsec 接続のイニシエータは DPD パケットを送信しません。

BgpConfig 構文

"BgpConfig": {
  "EnableBgp": ブール値,
  "LocalAsn": 数値,
  "TunnelCidr": 文字列,
  "LocalBgpIp": 文字列
}

BgpConfig プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

EnableBgp

ブール値

いいえ

いいえ

BGP 機能を有効にするかどうかを指定します。

有効値:

  • true

  • false (デフォルト)

LocalAsn

数値

いいえ

はい

Alibaba Cloud 側の ASN です。

有効値: 1 から 4294967295。デフォルト値: 45104

TunnelCidr

文字列

いいえ

はい

IPsec-VPN トンネルの CIDR ブロックです。

CIDR ブロックは 169.254.0.0/16 に属している必要があります。CIDR ブロックのサブネットマスクは 30 ビット長である必要があります。

LocalBgpIp

文字列

いいえ

はい

Alibaba Cloud 側の BGP IP アドレスです。

IP アドレスは、IPsec-VPN トンネルの CIDR ブロックの範囲内である必要があります。

IpsecConfig 構文

"IpsecConfig": {
  "IpsecPfs": String,
  "IpsecEncAlg": String,
  "IpsecAuthAlg": String,
  "IpsecLifetime": Integer
}

IpsecConfig プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

IpsecPfs

String

いいえ

はい

フェーズ 2 ネゴシエーションで使用される Diffie-Hellman(DH)キー交換アルゴリズム。

有効な値:

  • disabled

  • group1

  • group2 (デフォルト)

  • group5

  • group14

IpsecEncAlg

String

いいえ

はい

フェーズ 2 ネゴシエーションで使用される暗号化アルゴリズム。

有効な値:

  • aes (デフォルト)

  • aes192

  • aes256

  • des

  • 3des

IpsecAuthAlg

String

いいえ

はい

フェーズ 2 ネゴシエーションで使用される認証アルゴリズム。

有効な値:

  • md5 (デフォルト)

  • sha1

  • sha256

  • sha384

  • sha512

IpsecLifetime

Integer

いいえ

はい

フェーズ 2 ネゴシエーションによって決定される SA ライフタイム。

単位:秒。有効な値: 0 から 86400 。デフォルト値: 86400

HealthCheckConfig 構文

"HealthCheckConfig": {
  "Policy": String,
  "Enable": Boolean,
  "Dip": String,
  "Retry": Integer,
  "Sip": String,
  "Interval": Integer
}

HealthCheckConfig プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Policy

String

いいえ

はい

ヘルスチェックが失敗した場合に公開ルートを取り消すかどうかを指定します。

有効な値:

  • revoke_route (デフォルト): ヘルスチェックが失敗した場合、公開ルートを取り消します。

  • reserve_route: ヘルスチェックが失敗した場合でも、公開ルートを取り消しません。

Enable

Boolean

いいえ

はい

ヘルスチェック機能を有効にするかどうかを指定します。

有効な値:

  • true

  • false (デフォルト)

Dip

String

いいえ

はい

ヘルスチェックに使用される宛先 IP アドレス。

IPsec 接続に基づいて VPC が通信できるデータセンター側の IP アドレスを指定します。

Retry

Integer

いいえ

はい

ヘルスチェックの最大再試行回数。

デフォルト値: 3

Sip

String

いいえ

はい

ヘルスチェックに使用される送信元 IP アドレス。

IPsec 接続に基づいてデータセンターが通信できる VPC 側の IP アドレスを指定します。

Interval

Integer

いいえ

はい

2 回の連続するヘルスチェック再試行の間隔。

単位: 秒。デフォルト値: 3

IkeConfig 構文

"IkeConfig": {
  "IkeAuthAlg": String,
  "LocalId": String,
  "IkeEncAlg": String,
  "IkeVersion": String,
  "IkeMode": String,
  "IkeLifetime": Integer,
  "RemoteId": String,
  "Psk": String,
  "IkePfs": String
}

BgpConfig 構文

プロパティ

タイプ

必須

編集可能

説明

制約

IkeAuthAlg

String

いいえ

はい

フェーズ 1 ネゴシエーションで使用される認証アルゴリズム。

有効な値:

  • md5 (デフォルト)

  • sha1

  • sha256

  • sha384

  • sha512

LocalId

String

いいえ

はい

Alibaba Cloud 側の IPsec 接続の識別子。

識別子は最大 100 文字です。このプロパティはデフォルトで空です。

IkeEncAlg

String

いいえ

はい

フェーズ 1 ネゴシエーションで使用される暗号化アルゴリズム。

有効な値:

  • aes (デフォルト)

  • aes192

  • aes256

  • des

  • 3des

IkeVersion

String

いいえ

はい

IKE プロトコルのバージョン。

有効な値:

  • ikev1 (デフォルト)

  • ikev2

IkeMode

String

いいえ

はい

ネゴシエーションモード。

有効な値:

  • main (デフォルト)

  • aggressive

IkeLifetime

Integer

いいえ

はい

フェーズ 1 ネゴシエーションで決定される SA ライフタイム。

単位:秒。有効な値: 0 から 86400。デフォルト値: 86400

RemoteId

String

いいえ

はい

データセンター側の IPsec 接続の識別子。

識別子は最大 100 文字です。デフォルト値はカスタマーゲートウェイの IP アドレスです。

Psk

String

いいえ

はい

VPN ゲートウェイとデータセンター間の身元認証に使用される事前共有鍵。

以下の制限が適用されます。

  • 事前共有鍵は 1 ~ 100 文字で、数字、文字、および次の文字を含めることができます: ~ ! ` @ # $ % ^ & * ( ) _ - + = { } [ ] | ; : ' , . < > / ?

  • 事前共有鍵を指定しない場合、システムは 16 文字の文字列を事前共有鍵としてランダムに生成します。

説明

IPsec 接続の事前共有鍵は、データセンターの認証キーと同じである必要があります。そうでない場合、データセンターと VPN ゲートウェイ間の接続を確立できません。

IkePfs

String

いいえ

はい

フェーズ 1 ネゴシエーションで使用される DH キー交換アルゴリズム。

有効な値:

  • group1 (デフォルト)

  • group2

  • group5

  • group14

戻り値

Fn::GetAtt

  • InternetIp: IPsec 接続のゲートウェイアドレス。

  • VpnAttachmentId: IPsec 接続の ID。

  • PeerVpnAttachmentConfig: IPsec 接続の構成。

BgpConfig プロパティ

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  AutoConfigRoute:
    Description:
      ja: "ルートを自動的に構成するかどうかを指定します。有効な値:\ntrue (デフォルト) \nfalse"
    Type: Boolean
  BgpConfig:
    AssociationPropertyMetadata:
      Parameters:
        EnableBgp:
          Description:
            ja: "トンネルの BGP 機能を有効にするかどうかを指定します。 \n有効な値:true および false。デフォルト値:false。"
          Type: Boolean
        LocalAsn:
          Description:
            ja: 'Alibaba Cloud 側の ASN。有効な値:1 ~ 4294967295。デフォルト値:45104。'
          MaxValue: 4294967295
          MinValue: 1
          Type: Number
        LocalBgpIp:
          Description:
            ja: "Alibaba Cloud 側の BGP IP アドレス。 \nこの IP アドレスは、IPsec トンネルの CIDR ブロック内に含まれている必要があります。"
          Type: String
        TunnelCidr:
          Description:
            ja: IPsec トンネルの CIDR ブロック。CIDR ブロックは 169.254.0.0/16 内にある必要があります。CIDR ブロックのサブネットマスクは 30 ビット長である必要があります。
          Type: String
    Description:
      ja: "ボーダーゲートウェイプロトコル (BGP) の構成。\nこのパラメーターは、VPN ゲートウェイで動的 BGP が有効になっている場合に必須です。\nBGP を構成する前に、BGP の仕組みとその制限について理解しておくことをお勧めします。詳細については、「VPN Gateway が BGP 動的ルーティングをサポート」をご参照ください。\nAlibaba Cloud と BGP 経由で接続を確立するには、プライベート ASN を使用することをお勧めします。 \nプライベート ASN の範囲については、関連ドキュメントを参照してください。"
    Type: Json
  CustomerGatewayId:
    Description:
      ja: ユーザーゲートウェイの ID。
    Type: String
  EffectImmediately:
    Default: false
    Description:
      ja: '現在ネゴシエートされている IPsec トンネルを削除し、ネゴシエーションを再開するかどうか。値:

        True:構成完了後すぐにネゴシエーションします。

        False (デフォルト):トラフィックが入るときにネゴシエーションします。'
    Type: Boolean
  EnableDpd:
    Description:
      ja: "Dead Peer Detection (DPD) 機能を有効にするかどうかを指定します。有効な値: \ntrue (デフォルト) IPsec 接続の開始側が DPD パケットを送信して、ピアの存在と可用性を検証します。指定された時間内にピアから応答がない場合、接続は失敗します。ISAKMP SA と IPsec SA は削除されます。IPsec トンネルも削除されます。 \nfalse:DPD を無効にします。IPsec 開始側は DPD パケットを送信しません。"
    Type: Boolean
  EnableNatTraversal:
    Description:
      ja: "NAT 越えを有効にするかどうかを指定します。有効な値: \ntrue (デフォルト) NAT 越えが有効になっている場合、開始側は IKE ネゴシエーション中に UDP ポートを確認せず、VPN トンネルに沿って NAT ゲートウェイデバイスを自動的に検出できます。 \nfalse"
    Type: Boolean
  HealthCheckConfig:
    AssociationPropertyMetadata:
      Parameters:
        Dip:
          Type: String
        Enable:
          Type: Boolean
        Interval:
          Type: Number
        Policy:
          Description:
            ja: ヘルスチェックが失敗した場合に公開ルートを取り消すかどうか。
          Type: String
        Retry:
          Type: Number
        Sip:
          Type: String
    Description:
      ja: ヘルスチェック構成を有効にするかどうか。
    Type: Json
  IkeConfig:
    AssociationPropertyMetadata:
      Parameters:
        IkeAuthAlg:
          AllowedValues:
          - md5
          - sha1
          - sha256
          - sha384
          - sha512
          - sm3
          Description:
            ja: "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は md5|sha1|sha256|sha384|sha512 で、デフォルト値は md5 です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm3 (デフォルト値) です。"
          Type: String
        IkeEncAlg:
          AllowedValues:
          - aes
          - aes192
          - aes256
          - des
          - 3des
          - sm4
          Description:
            ja: "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は aes|aes192|aes256|des|3des で、デフォルト値は aes です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm4 (デフォルト値) です。"
          Type: String
        IkeLifetime:
          Default: 86400
          Description:
            ja: 第 1 フェーズでネゴシエートされた SA のライフサイクル。値の範囲は 0 ~ 86400 秒です。デフォルト値は 86400 です。
          MaxValue: 86400
          MinValue: 0
          Type: Number
        IkeMode:
          AllowedValues:
          - main
          - aggressive
          Default: main
          Description:
            ja: 'IKE V1 のネゴシエーションモード。値:main|aggressive、デフォルト:main。'
          Type: String
        IkePfs:
          AllowedValues:
          - group1
          - group2
          - group5
          - group14
          - group24
          Default: group2
          Description:
            ja: '第 1 フェーズのネゴシエーションで使用される Diffie-Hellman キー交換アルゴリズム。値:group1|group2|group5|group14|group24、デフォルト値:group2。'
          Type: String
        IkeVersion:
          AllowedValues:
          - ikev1
          - ikev2
          Default: ikev1
          Description:
            ja: 'IKE プロトコルのバージョン。値:ikev1|ikev2、デフォルト:ikev1。'
          Type: String
        LocalId:
          Description:
            ja: VPN ゲートウェイの ID。長さは 100 文字に制限されています。デフォルト値は、VPN ゲートウェイのパブリック IP アドレスです。
          MaxLength: 100
          Type: String
        Psk:
          Description:
            ja: IPsec VPN ゲートウェイとユーザーゲートウェイ間の身元認証に使用されます。デフォルトではランダムに生成されますが、キーを手動で指定することもできます。長さは 100 文字に制限されています。
          MaxLength: 100
          Type: String
        RemoteId:
          Description:
            ja: ユーザーゲートウェイの ID。長さは 100 文字に制限されています。デフォルト値は、ユーザーゲートウェイのパブリック IP アドレスです。
          MaxLength: 100
          Type: String
    Description:
      ja: ネゴシエーションの第 1 フェーズの構成情報。
    Type: Json
  IpsecConfig:
    AssociationPropertyMetadata:
      Parameters:
        IpsecAuthAlg:
          AllowedValues:
          - md5
          - sha1
          - sha256
          - sha384
          - sha512
          - sm3
          Description:
            ja: "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は md5|sha1|sha256|sha384|sha512 で、デフォルト値は md5 です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm3 (デフォルト値) です。"
          Type: String
        IpsecEncAlg:
          AllowedValues:
          - aes
          - aes192
          - aes256
          - des
          - 3des
          - sm4
          Description:
            ja: "第 2 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は aes|aes192|aes256|des|3des で、デフォルト値は aes です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm4 (デフォルト値) です。"
          Type: String
        IpsecLifetime:
          Default: 86400
          Description:
            ja: 'IpsecLifetime:第 2 フェーズでネゴシエートされた SA のライフサイクル。値の範囲は 0 ~ 86400 秒です。デフォルト値は 86400 です。'
          MaxValue: 86400
          MinValue: 0
          Type: Number
        IpsecPfs:
          AllowedValues:
          - disabled
          - group1
          - group2
          - group5
          - group14
          - group24
          Default: group2
          Description:
            ja: 'すべてのプロトコルパケットを転送します。第 1 フェーズのネゴシエーションで使用される Diffie-Hellman キー交換アルゴリズム、値:group1|group2|group5|group14|group24、デフォルト値:group2。'
          Type: String
    Description:
      ja: 第 2 フェーズネゴシエーションの構成情報。
    Type: Json
  LocalSubnet:
    Description:
      ja: '第 2 フェーズネゴシエーションのためにローカル IDC と相互接続する必要がある VPC 側のネットワークセグメント。

        複数のネットワークセグメントはコンマで区切ります。例:192.168.1.0/24、192.168.2.0/24。'
    Type: String
  Name:
    Description:
      ja: 'IPsec 接続の名前。

        長さは 2 ~ 128 文字で、英字または中国語で始める必要があります。数字、ピリオド(.)、アンダースコア(_) 、ダッシュ(-) を含めることができますが、http:// または https:// で始めることはできません。'
    MaxLength: 128
    MinLength: 2
    Type: String
  NetworkType:
    AllowedValues:
    - public
    - private
    Description:
      ja: 'IPsec 接続のネットワークタイプ。値:public|private。'
    Type: String
  RemoteCaCert:
    Description:
      ja: "商密 (SM) VPN ゲートウェイを使用して IPsec 接続を確立する場合のピア CA 証明書。 \nこのパラメーターは、SM VPN ゲートウェイを使用して IPsec 接続を確立する場合に必須です。 \n標準 VPN ゲートウェイを使用して IPsec 接続を作成する場合は、このパラメーターを無視できます。"
    Type: String
  RemoteSubnet:
    Description:
      ja: 'ローカル IDC のネットワークセグメントは、第 2 フェーズネゴシエーションに使用されます。

        複数のネットワークセグメントはコンマで区切ります。例:192.168.3.0/24、192.168.4.0/24。'
    Type: String
Resources:
  VpnAttachment:
    Properties:
      AutoConfigRoute:
        Ref: AutoConfigRoute
      BgpConfig:
        Ref: BgpConfig
      CustomerGatewayId:
        Ref: CustomerGatewayId
      EffectImmediately:
        Ref: EffectImmediately
      EnableDpd:
        Ref: EnableDpd
      EnableNatTraversal:
        Ref: EnableNatTraversal
      HealthCheckConfig:
        Ref: HealthCheckConfig
      IkeConfig:
        Ref: IkeConfig
      IpsecConfig:
        Ref: IpsecConfig
      LocalSubnet:
        Ref: LocalSubnet
      Name:
        Ref: Name
      NetworkType:
        Ref: NetworkType
      RemoteCaCert:
        Ref: RemoteCaCert
      RemoteSubnet:
        Ref: RemoteSubnet
    Type: ALIYUN::VPC::VpnAttachment
Outputs:
  InternetIp:
    Description: IPsec 接続のゲートウェイ IP アドレス。
    Value:
      Fn::GetAtt:
      - VpnAttachment
      - InternetIp
  PeerVpnAttachmentConfig:
    Description: ピア VPC 接続構成。
    Value:
      Fn::GetAtt:
      - VpnAttachment
      - PeerVpnAttachmentConfig
  VpnAttachmentId:
    Description: IPsec 接続の ID。
    Value:
      Fn::GetAtt:
      - VpnAttachment
      - VpnAttachmentId
                        
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "LocalSubnet": {
      "Type": "String",
      "Description": {
        "ja": "第 2 フェーズネゴシエーションのためにローカル IDC と相互接続する必要がある VPC 側のネットワークセグメント。\n複数のネットワークセグメントはコンマで区切ります。例:192.168.1.0/24、192.168.2.0/24。"
      }
    },
    "CustomerGatewayId": {
      "Type": "String",
      "Description": {
        "ja": "ユーザーゲートウェイの ID。"
      }
    },
    "AutoConfigRoute": {
      "Type": "Boolean",
      "Description": {
        "ja": "ルートを自動的に構成するかどうかを指定します。有効な値:\ntrue (デフォルト) \nfalse"
      }
    },
    "Name": {
      "Type": "String",
      "Description": {
        "ja": "IPsec 接続の名前。\n長さは 2 ~ 128 文字で、英字または中国語で始める必要があります。数字、ピリオド(.)、アンダースコア(_) 、ダッシュ(-) を含めることができますが、http:// または https:// で始めることはできません。"
      },
      "MinLength": 2,
      "MaxLength": 128
    },
    "EffectImmediately": {
      "Type": "Boolean",
      "Description": {
        "ja": "現在ネゴシエートされている IPsec トンネルを削除し、ネゴシエーションを再開するかどうか。値:\nTrue:構成完了後すぐにネゴシエーションします。\nFalse (デフォルト):トラフィックが入るときにネゴシエーションします。"
      },
      "Default": false
    },
    "BgpConfig": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "EnableBgp": {
            "Type": "Boolean",
            "Description": {
              "ja": "トンネルの BGP 機能を有効にするかどうかを指定します。 \n有効な値:true および false。デフォルト値:false。"
            }
          },
          "LocalAsn": {
            "Type": "Number",
            "Description": {
              "ja": "Alibaba Cloud 側の ASN。有効な値:1 ~ 4294967295。デフォルト値:45104。"
            },
            "MinValue": 1,
            "MaxValue": 4294967295
          },
          "TunnelCidr": {
            "Type": "String",
            "Description": {
              "ja": "IPsec トンネルの CIDR ブロック。CIDR ブロックは 169.254.0.0/16 内にある必要があります。CIDR ブロックのサブネットマスクは 30 ビット長である必要があります。"
            }
          },
          "LocalBgpIp": {
            "Type": "String",
            "Description": {
              "ja": "Alibaba Cloud 側の BGP IP アドレス。 \nこの IP アドレスは、IPsec トンネルの CIDR ブロック内に含まれている必要があります。"
            }
          }
        }
      },
      "Type": "Json",
      "Description": {
        "ja": "ボーダーゲートウェイプロトコル (BGP) の構成。\nこのパラメーターは、VPN ゲートウェイで動的 BGP が有効になっている場合に必須です。\nBGP を構成する前に、BGP の仕組みとその制限について理解しておくことをお勧めします。詳細については、「VPN Gateway が BGP 動的ルーティングをサポート」をご参照ください。\nAlibaba Cloud と BGP 経由で接続を確立するには、プライベート ASN を使用することをお勧めします。 \nプライベート ASN の範囲については、関連ドキュメントを参照してください。"
      }
    },
    "RemoteSubnet": {
      "Type": "String",
      "Description": {
        "ja": "ローカル IDC のネットワークセグメントは、第 2 フェーズネゴシエーションに使用されます。\n複数のネットワークセグメントはコンマで区切ります。例:192.168.3.0/24、192.168.4.0/24。"
      }
    },
    "RemoteCaCert": {
      "Type": "String",
      "Description": {
        "ja": "商密 (SM) VPN ゲートウェイを使用して IPsec 接続を確立する場合のピア CA 証明書。 \nこのパラメーターは、SM VPN ゲートウェイを使用して IPsec 接続を確立する場合に必須です。 \n標準 VPN ゲートウェイを使用して IPsec 接続を作成する場合は、このパラメーターを無視できます。"
      }
    },
    "IpsecConfig": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "IpsecPfs": {
            "Type": "String",
            "Description": {
              "ja": "すべてのプロトコルパケットを転送します。第 1 フェーズのネゴシエーションで使用される Diffie-Hellman キー交換アルゴリズム、値:group1|group2|group5|group14|group24、デフォルト値:group2。"
            },
            "AllowedValues": [
              "disabled",
              "group1",
              "group2",
              "group5",
              "group14",
              "group24"
            ],
            "Default": "group2"
          },
          "IpsecEncAlg": {
            "Type": "String",
            "Description": {
              "ja": "第 2 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は aes|aes192|aes256|des|3des で、デフォルト値は aes です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm4 (デフォルト値) です。"
            },
            "AllowedValues": [
              "aes",
              "aes192",
              "aes256",
              "des",
              "3des",
              "sm4"
            ]
          },
          "IpsecAuthAlg": {
            "Type": "String",
            "Description": {
              "ja": "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は md5|sha1|sha256|sha384|sha512 で、デフォルト値は md5 です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm3 (デフォルト値) です。"
            },
            "AllowedValues": [
              "md5",
              "sha1",
              "sha256",
              "sha384",
              "sha512",
              "sm3"
            ]
          },
          "IpsecLifetime": {
            "Type": "Number",
            "Description": {
              "ja": "IpsecLifetime:第 2 フェーズでネゴシエートされた SA のライフサイクル。値の範囲は 0 ~ 86400 秒です。デフォルト値は 86400 です。"
            },
            "MinValue": 0,
            "MaxValue": 86400,
            "Default": 86400
          }
        }
      },
      "Type": "Json",
      "Description": {
        "ja": "第 2 フェーズネゴシエーションの構成情報。"
      }
    },
    "NetworkType": {
      "Type": "String",
      "Description": {
        "ja": "IPsec 接続のネットワークタイプ。値:public|private。"
      },
      "AllowedValues": [
        "public",
        "private"
      ]
    },
    "HealthCheckConfig": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "Policy": {
            "Type": "String",
            "Description": {
              "ja": "ヘルスチェックが失敗した場合に公開ルートを取り消すかどうか。"
            }
          },
          "Enable": {
            "Type": "Boolean"
          },
          "Dip": {
            "Type": "String"
          },
          "Retry": {
            "Type": "Number"
          },
          "Sip": {
            "Type": "String"
          },
          "Interval": {
            "Type": "Number"
          }
        }
      },
      "Type": "Json",
      "Description": {
        "ja": "ヘルスチェック構成を有効にするかどうか。"
      }
    },
    "EnableNatTraversal": {
      "Type": "Boolean",
      "Description": {
        "ja": "NAT 越えを有効にするかどうかを指定します。有効な値: \ntrue (デフォルト) NAT 越えが有効になっている場合、開始側は IKE ネゴシエーション中に UDP ポートを確認せず、VPN トンネルに沿って NAT ゲートウェイデバイスを自動的に検出できます。 \nfalse"
      }
    },
    "IkeConfig": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "IkeAuthAlg": {
            "Type": "String",
            "Description": {
              "ja": "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は md5|sha1|sha256|sha384|sha512 で、デフォルト値は md5 です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm3 (デフォルト値) です。"
            },
            "AllowedValues": [
              "md5",
              "sha1",
              "sha256",
              "sha384",
              "sha512",
              "sm3"
            ]
          },
          "LocalId": {
            "Type": "String",
            "Description": {
              "ja": "VPN ゲートウェイの ID。長さは 100 文字に制限されています。デフォルト値は、VPN ゲートウェイのパブリック IP アドレスです。
"
            },
            "MaxLength": 100
          },
          "IkeEncAlg": {
            "Type": "String",
            "Description": {
              "ja": "第 1 フェーズでネゴシエートされる認証アルゴリズム。 \nVPN ゲートウェイのインスタンスタイプが標準の場合、値は aes|aes192|aes256|des|3des で、デフォルト値は aes です。\nVPN ゲートウェイのインスタンスタイプが国家機密タイプの場合、値は sm4 (デフォルト値) です。"
            },
            "AllowedValues": [
              "aes",
              "aes192",
              "aes256",
              "des",
              "3des",
              "sm4"
            ]
          },
          "IkeVersion": {
            "Type": "String",
            "Description": {
              "ja": "IKE プロトコルのバージョン。値:ikev1|ikev2、デフォルト:ikev1。"
            },
            "AllowedValues": [
              "ikev1",
              "ikev2"
            ],
            "Default": "ikev1"
          },
          "IkeMode": {
            "Type": "String",
            "Description": {
              "ja": "IKE V1 のネゴシエーションモード。値:main|aggressive、デフォルト:main。"
            },
            "AllowedValues": [
              "main",
              "aggressive"
            ],
            "Default": "main"
          },
          "IkeLifetime": {
            "Type": "Number",
            "Description": {
              "ja": "第 1 フェーズでネゴシエートされた SA のライフサイクル。値の範囲は 0 ~ 86400 秒です。デフォルト値は 86400 です。"
            },
            "MinValue": 0,
            "MaxValue": 86400,
            "Default": 86400
          },
          "RemoteId": {
            "Type": "String",
            "Description": {
              "ja": "ユーザーゲートウェイの ID。長さは 100 文字に制限されています。デフォルト値は、ユーザーゲートウェイのパブリック IP アドレスです。"
            },
            "MaxLength": 100
          },
          "Psk": {
            "Type": "String",
            "Description": {
              "ja": "IPsec VPN ゲートウェイとユーザーゲートウェイ間の身元認証に使用されます。デフォルトではランダムに生成されますが、キーを手動で指定することもできます。長さは 100 文字に制限されています。"
            },
            "MaxLength": 100
          },
          "IkePfs": {
            "Type": "String",
            "Description": {
              "ja": "第 1 フェーズのネゴシエーションで使用される Diffie-Hellman キー交換アルゴリズム。値:group1|group2|group5|group14|group24、デフォルト値:group2。"
            },
            "AllowedValues": [
              "group1",
              "group2",
              "group5",
              "group14",
              "group24"
            ],
            "Default": "group2"
          }
        }
      },
      "Type": "Json",
      "Description": {
        "ja": "ネゴシエーションの第 1 フェーズの構成情報。"
      }
    },
    "EnableDpd": {
      "Type": "Boolean",
      "Description": {
        "ja": "Dead Peer Detection (DPD) 機能を有効にするかどうかを指定します。有効な値: \ntrue (デフォルト) IPsec 接続の開始側が DPD パケットを送信して、ピアの存在と可用性を検証します。指定された時間内にピアから応答がない場合、接続は失敗します。ISAKMP SA と IPsec SA は削除されます。IPsec トンネルも削除されます。 \nfalse:DPD を無効にします。IPsec 開始側は DPD パケットを送信しません。"
      }
    }
  },
  "Resources": {
    "VpnAttachment": {
      "Type": "ALIYUN::VPC::VpnAttachment",
      "Properties": {
        "LocalSubnet": {
          "Ref": "LocalSubnet"
        },
        "CustomerGatewayId": {
          "Ref": "CustomerGatewayId"
        },
        "AutoConfigRoute": {
          "Ref": "AutoConfigRoute"
        },
        "Name": {
          "Ref": "Name"
        },
        "EffectImmediately": {
          "Ref": "EffectImmediately"
        },
        "BgpConfig": {
          "Ref": "BgpConfig"
        },
        "RemoteSubnet": {
          "Ref": "RemoteSubnet"
        },
        "RemoteCaCert": {
          "Ref": "RemoteCaCert"
        },
        "IpsecConfig": {
          "Ref": "IpsecConfig"
        },
        "NetworkType": {
          "Ref": "NetworkType"
        },
        "HealthCheckConfig": {
          "Ref": "HealthCheckConfig"
        },
        "EnableNatTraversal": {
          "Ref": "EnableNatTraversal"
        },
        "IkeConfig": {
          "Ref": "IkeConfig"
        },
        "EnableDpd": {
          "Ref": "EnableDpd"
        }
      }
    }
  },
  "Outputs": {
    "InternetIp": {
      "Description": "IPsec 接続のゲートウェイ IP アドレス。",
      "Value": {
        "Fn::GetAtt": [
          "VpnAttachment",
          "InternetIp"
        ]
      }
    },
    "VpnAttachmentId": {
      "Description": "IPsec 接続の ID。",
      "Value": {
        "Fn::GetAtt": [
          "VpnAttachment",
          "VpnAttachmentId"
        ]
      }
    },
    "PeerVpnAttachmentConfig": {
      "Description": "ピア VPC 接続構成。",
      "Value": {
        "Fn::GetAtt": [
          "VpnAttachment",
          "PeerVpnAttachmentConfig"
        ]
      }
    }
  }
}