コンテンツにスキップ

アップグレードガイド(v2.13)

目次

シンプル監視でのFTP/FTPS監視

シンプル監視において監視方法にFTPを指定可能になりました。

利用例:

resource "sakuracloud_simple_monitor" "foobar" {
  target = "ftp.example.com"

  delay_loop = 60
  timeout    = 10

  health_check {
    protocol        = "ftp"
    port            = 21
    ftps            = "explicit"
  }

  notify_email_enabled = true
}

エンハンスドロードバランサでのProxyProtocol v2対応

エンハンスドロードバランサにおいてProxy Protocol v2に対応しました。

利用例:

resource "sakuracloud_proxylb" "foobar" {
  # ...

  # Proxy Protocolの有効化
  proxy_protocol = true
}

マネージドPKI対応

マネージドPKIリソース/データソースに対応しました。

利用例:

terraform {
  required_providers {
    tls = {
      source  = "hashicorp/tls"
      version = "3.1.0"
    }
    sakuracloud = {
      source  = "sacloud/sakuracloud"
      version = "2.14.0"
    }
  }
}

resource "tls_private_key" "client_key" {
  algorithm   = "ECDSA"
  ecdsa_curve = "P384"
}

resource "tls_cert_request" "client_csr" {
  key_algorithm   = "ECDSA"
  private_key_pem = tls_private_key.client_key.private_key_pem

  subject {
    common_name  = "client-csr.usacloud.com"
    organization = "usacloud"
  }
}

resource "tls_private_key" "server_key" {
  algorithm   = "ECDSA"
  ecdsa_curve = "P384"
}

resource "tls_cert_request" "server_csr" {
  key_algorithm   = "ECDSA"
  private_key_pem = tls_private_key.server_key.private_key_pem

  subject {
    common_name  = "server-csr.usacloud.com"
    organization = "usacloud"
  }
}

resource "sakuracloud_certificate_authority" "foobar" {
  name = "foobar"

  validity_period_hours = 24 * 3650

  subject {
    common_name        = "pki.usacloud.jp"
    country            = "JP"
    organization       = "usacloud"
    organization_units = ["ou1", "ou2"]
  }

  # by public_key
  client {
    subject {
      common_name        = "client1.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }
    validity_period_hours = 24 * 3650
    public_key            = tls_private_key.client_key.public_key_pem
  }

  // by CSR
  client {
    subject {
      common_name        = "client2.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }
    validity_period_hours = 24 * 3650
    csr                   = tls_cert_request.client_csr.cert_request_pem
  }

  # by email
  client {
    subject {
      common_name        = "client3.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }
    validity_period_hours = 24 * 3650
    email                 = "example@example.com"
  }

  # by URL
  client {
    subject {
      common_name        = "client4.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }
    validity_period_hours = 24 * 3650
  }

  # by public key
  server {
    subject {
      common_name        = "server1.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }

    subject_alternative_names = ["alt1.usacloud.jp", "alt2.usacloud.jp"]

    validity_period_hours = 24 * 3650
    public_key            = tls_private_key.server_key.public_key_pem
  }

  # by CSR
  server {
    subject {
      common_name        = "server2.usacloud.jp"
      country            = "JP"
      organization       = "usacloud"
      organization_units = ["ou1", "ou2"]
    }

    subject_alternative_names = ["alt1.usacloud.jp", "alt2.usacloud.jp"]

    validity_period_hours = 24 * 3650
    csr                   = tls_cert_request.server_csr.cert_request_pem
  }
}