다음을 통해 공유


Microsoft.ApiManagement 서비스 2019-01-01

Bicep 리소스 정의

다음을 대상으로 하는 작업으로 서비스 리소스 유형을 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.ApiManagement/서비스 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.

resource symbolicname 'Microsoft.ApiManagement/service@2019-01-01' = {
  identity: {
    type: 'string'
  }
  location: 'string'
  name: 'string'
  properties: {
    additionalLocations: [
      {
        location: 'string'
        sku: {
          capacity: int
          name: 'string'
        }
        virtualNetworkConfiguration: {
          subnetResourceId: 'string'
        }
      }
    ]
    certificates: [
      {
        certificate: {
          expiry: 'string'
          subject: 'string'
          thumbprint: 'string'
        }
        certificatePassword: 'string'
        encodedCertificate: 'string'
        storeName: 'string'
      }
    ]
    customProperties: {
      {customized property}: 'string'
    }
    enableClientCertificate: bool
    hostnameConfigurations: [
      {
        certificate: {
          expiry: 'string'
          subject: 'string'
          thumbprint: 'string'
        }
        certificatePassword: 'string'
        defaultSslBinding: bool
        encodedCertificate: 'string'
        hostName: 'string'
        keyVaultId: 'string'
        negotiateClientCertificate: bool
        type: 'string'
      }
    ]
    notificationSenderEmail: 'string'
    publisherEmail: 'string'
    publisherName: 'string'
    virtualNetworkConfiguration: {
      subnetResourceId: 'string'
    }
    virtualNetworkType: 'string'
  }
  sku: {
    capacity: int
    name: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

속성 값

AdditionalLocation

이름 묘사
위치 Azure 데이터 센터 지역 간의 추가 지역의 위치 이름입니다. string(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
virtualNetworkConfiguration 위치에 대한 가상 네트워크 구성입니다. virtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

이름 묘사

ApiManagementServiceIdentity

이름 묘사
ID 형식입니다. 현재 지원되는 유일한 형식은 'SystemAssigned'입니다. 'SystemAssigned'(필수)

ApiManagementServiceProperties

이름 묘사
additionalLocations API Management 서비스의 추가 데이터 센터 위치입니다. AdditionalLocation[]
인증서 API Management 서비스에 설치해야 하는 인증서 목록입니다. 설치할 수 있는 지원되는 최대 인증서는 10개입니다. CertificateConfiguration[]
customProperties API Management 서비스의 사용자 지정 속성입니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 설정하면 모든 TLS(1.0, 1.1 및 1.2)에 대한 암호화 TLS_RSA_WITH_3DES_EDE_CBC_SHA 비활성화됩니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 설정은 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 설정은 API Management 서비스에서 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 설정은 백 엔드와의 통신에 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 설정은 백 엔드와의 통신에 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 설정은 API Management 서비스에서 HTTP2 프로토콜을 사용하도록 설정하는 데 사용할 수 있습니다.
PATCH 작업에서 이러한 속성을 지정하지 않으면 생략된 속성의 값이 기본값으로 다시 설정됩니다. Http2를 제외한 모든 설정의 경우 서비스가 2018년 4월 1일 또는 그 이전에 만들어진 경우 기본값이 True, 그렇지 않으면 False. Http2 설정의 기본값은 False.

설정 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]사용하여 다음 암호화를 사용하지 않도록 설정할 수 있습니다.
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA.
예: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256:false. 기본값은 모두 true.
ApiManagementServiceBasePropertiesCustomProperties
enableClientCertificate 속성은 소비 SKU 서비스에만 사용됩니다. 이렇게 하면 게이트웨이에 대한 각 요청에 대해 클라이언트 인증서가 표시됩니다. 이렇게 하면 게이트웨이의 정책에서 인증서를 인증하는 기능도 사용할 수 있습니다. bool
hostnameConfigurations API Management 서비스의 사용자 지정 호스트 이름 구성입니다. hostnameConfiguration[]
notificationSenderEmail 알림을 보낼 전자 메일 주소입니다. 문자열

제약 조건:
최대 길이 =
publisherEmail 게시자 전자 메일입니다. 문자열

제약 조건:
최대 길이 = (필수)
publisherName 게시자 이름입니다. 문자열

제약 조건:
최대 길이 = (필수)
virtualNetworkConfiguration API Management 서비스의 가상 네트워크 구성입니다. virtualNetworkConfiguration
virtualNetworkType API Management 서비스를 구성해야 하는 VPN의 유형입니다. 없음(기본값)은 API Management 서비스가 Virtual Network의 일부가 아님을 의미하고, 외부는 API Management 배포가 인터넷 연결 엔드포인트가 있는 Virtual Network 내에 설정됨을 의미하며, 내부는 인트라넷 연결 엔드포인트만 있는 Virtual Network 내에서 API Management 배포가 설정됨을 의미합니다. 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

이름 묘사
용량 SKU의 용량(SKU의 배포된 단위 수)입니다. int
이름 Sku의 이름입니다. '기본'
'소비'
'개발자'
'프리미엄'
'Standard'(필수)

ApimResourceTags

이름 묘사

CertificateConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
storeName System.Security.Cryptography.x509certificates.StoreName 인증서 저장소 위치입니다. 루트 및 CertificateAuthority만 유효한 위치입니다. 'CertificateAuthority'
'Root'(필수)

CertificateInformation

이름 묘사
만료 인증서의 만료 날짜입니다. 날짜는 ISO 8601 표준에 지정된 yyyy-MM-ddTHH:mm:ssZ 형식을 준수합니다. string(필수)
제목 인증서의 주체입니다. string(필수)
지문 인증서의 지문입니다. string(필수)

HostnameConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
defaultSslBinding 이 호스트 이름과 연결된 인증서를 기본 SSL 인증서로 설정하려면 true를 지정합니다. 클라이언트가 SNI 헤더를 보내지 않으면 이 문제가 발생하는 인증서가 됩니다. 이 속성은 서비스에 여러 사용자 지정 호스트 이름을 사용하도록 설정하고 기본 ssl 인증서를 결정해야 하는 경우에 유용합니다. 이 설정은 프록시 호스트 이름 형식에만 적용됩니다. bool
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
hostName Api Management 서비스에서 구성할 호스트 이름입니다. string(필수)
keyVaultId Ssl 인증서를 포함하는 KeyVault 비밀에 대한 URL입니다. 버전이 포함된 절대 URL이 제공되면 ssl 인증서의 자동 업데이트가 작동하지 않습니다. 이렇게 하려면 MSI를 사용하여 Api Management 서비스를 구성해야 합니다. 비밀은 application/x-pkcs12 형식이어야 합니다. 문자열
negotiateClientCertificate 호스트 이름에서 항상 클라이언트 인증서를 협상하려면 true를 지정합니다. 기본값은 false입니다. bool
호스트 이름 형식입니다. 'DeveloperPortal'
'Management'
'포털'
'Proxy'
'Scm'(필수)

Microsoft.ApiManagement/service

이름 묘사
신원 Api Management 서비스의 관리 서비스 ID입니다. ApiManagementServiceIdentity
위치 리소스 위치입니다. string(필수)
이름 리소스 이름 문자열

제약 조건:
최소 길이 = 1
최대 길이 = 1
패턴 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$(필수)
속성 API Management 서비스의 속성입니다. ApiManagementServiceProperties(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.

VirtualNetworkConfiguration

이름 묘사
subnetResourceId API Management 서비스를 배포할 가상 네트워크에 있는 서브넷의 전체 리소스 ID입니다. 문자열

제약 조건:
패턴 = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$

빠른 시작 샘플

다음 빠른 시작 샘플은 이 리소스 유형을 배포합니다.

Bicep 파일 묘사
내부 API Management 및 Web App 사용하여 Application Gateway Azure Web App에서 호스트되는 웹 API를 서비스하는 가상 네트워크(내부 모드) API Management 인스턴스로 인터넷 트래픽을 라우팅하는 Application Gateway입니다.
다중region Premium 계층 API Management 인스턴스 만들기 이 템플릿은 추가 위치가 있는 API Management 인스턴스를 만드는 방법을 보여 줍니다. 기본 위치는 리소스 그룹의 위치와 동일합니다. 추가 위치의 경우 템플릿은 NorthCentralUs 및 미국 동부 2를 표시합니다. 기본 위치는 추가 위치와 달라야 합니다.
MSI ID가 있는 API Management 인스턴스 만들기 이 템플릿은 MSI ID가 있는 Azure API Management의 개발자 인스턴스를 만듭니다.
템플릿 사용하여 API Management 인스턴스 만들기 이 템플릿은 Azure API Management의 개발자 인스턴스를 만듭니다.
프라이빗 엔드포인트 사용하여 API Management 서비스 만들기 이 템플릿은 API Management 서비스, 가상 네트워크 및 가상 네트워크에 API Management 서비스를 노출하는 프라이빗 엔드포인트를 만듭니다.
KeyVault SSL을 사용하여 API Management 서비스 만들기 이 템플릿은 사용자 할당 ID로 구성된 API Management 서비스를 배포합니다. 이 ID를 사용하여 KeyVault에서 SSL 인증서를 가져오고 4시간마다 확인하여 업데이트를 유지합니다.
App Gateway 사용하여 내부 VNet에서 API Management 만들기 이 템플릿은 Azure Application Gateway로 보호되는 프라이빗 네트워크에서 Azure API Management 인스턴스를 만드는 방법을 보여 줍니다.
공용 IP 사용하여 외부 VNet에 API Management 배포 이 템플릿은 외부 모드에서 가상 네트워크의 서브넷 내에서 프리미엄 계층에서 Azure API Management 인스턴스를 만들고 서브넷에서 권장되는 NSG 규칙을 구성하는 방법을 보여 줍니다. 인스턴스는 두 가용성 영역에 배포됩니다. 또한 템플릿은 구독에서 공용 IP 주소를 구성합니다.
공용 IP 사용하여 내부 VNet에 API Management 배포 이 템플릿은 내부 모드에서 가상 네트워크의 서브넷 내에서 프리미엄 계층에서 Azure API Management 인스턴스를 만들고 서브넷에서 권장되는 NSG 규칙을 구성하는 방법을 보여 줍니다. 인스턴스는 두 가용성 영역에 배포됩니다. 또한 템플릿은 구독에서 공용 IP 주소를 구성합니다.
가용성 영역 API Management 배포 이 템플릿은 Azure API Management의 프리미엄 인스턴스를 만들고 가용성 영역에 배포합니다.
외부 Azure Cache for Redis 사용하여 API Management 배포 이 템플릿은 외부 Azure Cache for Redis 인스턴스를 API Management 외부 캐시로 사용하여 소비 계층에서 Azure API Management 인스턴스를 만드는 방법을 보여 줍니다.
API Management 원본 사용하여 Front Door 표준/프리미엄 이 템플릿은 Front Door Premium 및 API Management 인스턴스를 만들고 NSG 및 전역 API Management 정책을 사용하여 트래픽이 Front Door 원본을 통해 들어왔다는 것을 확인합니다.

ARM 템플릿 리소스 정의

다음을 대상으로 하는 작업으로 서비스 리소스 유형을 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.ApiManagement/서비스 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.

{
  "type": "Microsoft.ApiManagement/service",
  "apiVersion": "2019-01-01",
  "name": "string",
  "identity": {
    "type": "string"
  },
  "location": "string",
  "properties": {
    "additionalLocations": [
      {
        "location": "string",
        "sku": {
          "capacity": "int",
          "name": "string"
        },
        "virtualNetworkConfiguration": {
          "subnetResourceId": "string"
        }
      }
    ],
    "certificates": [
      {
        "certificate": {
          "expiry": "string",
          "subject": "string",
          "thumbprint": "string"
        },
        "certificatePassword": "string",
        "encodedCertificate": "string",
        "storeName": "string"
      }
    ],
    "customProperties": {
      "{customized property}": "string"
    },
    "enableClientCertificate": "bool",
    "hostnameConfigurations": [
      {
        "certificate": {
          "expiry": "string",
          "subject": "string",
          "thumbprint": "string"
        },
        "certificatePassword": "string",
        "defaultSslBinding": "bool",
        "encodedCertificate": "string",
        "hostName": "string",
        "keyVaultId": "string",
        "negotiateClientCertificate": "bool",
        "type": "string"
      }
    ],
    "notificationSenderEmail": "string",
    "publisherEmail": "string",
    "publisherName": "string",
    "virtualNetworkConfiguration": {
      "subnetResourceId": "string"
    },
    "virtualNetworkType": "string"
  },
  "sku": {
    "capacity": "int",
    "name": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

속성 값

AdditionalLocation

이름 묘사
위치 Azure 데이터 센터 지역 간의 추가 지역의 위치 이름입니다. string(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
virtualNetworkConfiguration 위치에 대한 가상 네트워크 구성입니다. virtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

이름 묘사

ApiManagementServiceIdentity

이름 묘사
ID 형식입니다. 현재 지원되는 유일한 형식은 'SystemAssigned'입니다. 'SystemAssigned'(필수)

ApiManagementServiceProperties

이름 묘사
additionalLocations API Management 서비스의 추가 데이터 센터 위치입니다. AdditionalLocation[]
인증서 API Management 서비스에 설치해야 하는 인증서 목록입니다. 설치할 수 있는 지원되는 최대 인증서는 10개입니다. CertificateConfiguration[]
customProperties API Management 서비스의 사용자 지정 속성입니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 설정하면 모든 TLS(1.0, 1.1 및 1.2)에 대한 암호화 TLS_RSA_WITH_3DES_EDE_CBC_SHA 비활성화됩니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 설정은 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 설정은 API Management 서비스에서 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 설정은 백 엔드와의 통신에 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 설정은 백 엔드와의 통신에 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 설정은 API Management 서비스에서 HTTP2 프로토콜을 사용하도록 설정하는 데 사용할 수 있습니다.
PATCH 작업에서 이러한 속성을 지정하지 않으면 생략된 속성의 값이 기본값으로 다시 설정됩니다. Http2를 제외한 모든 설정의 경우 서비스가 2018년 4월 1일 또는 그 이전에 만들어진 경우 기본값이 True, 그렇지 않으면 False. Http2 설정의 기본값은 False.

설정 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]사용하여 다음 암호화를 사용하지 않도록 설정할 수 있습니다.
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA.
예: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256:false. 기본값은 모두 true.
ApiManagementServiceBasePropertiesCustomProperties
enableClientCertificate 속성은 소비 SKU 서비스에만 사용됩니다. 이렇게 하면 게이트웨이에 대한 각 요청에 대해 클라이언트 인증서가 표시됩니다. 이렇게 하면 게이트웨이의 정책에서 인증서를 인증하는 기능도 사용할 수 있습니다. bool
hostnameConfigurations API Management 서비스의 사용자 지정 호스트 이름 구성입니다. hostnameConfiguration[]
notificationSenderEmail 알림을 보낼 전자 메일 주소입니다. 문자열

제약 조건:
최대 길이 =
publisherEmail 게시자 전자 메일입니다. 문자열

제약 조건:
최대 길이 = (필수)
publisherName 게시자 이름입니다. 문자열

제약 조건:
최대 길이 = (필수)
virtualNetworkConfiguration API Management 서비스의 가상 네트워크 구성입니다. virtualNetworkConfiguration
virtualNetworkType API Management 서비스를 구성해야 하는 VPN의 유형입니다. 없음(기본값)은 API Management 서비스가 Virtual Network의 일부가 아님을 의미하고, 외부는 API Management 배포가 인터넷 연결 엔드포인트가 있는 Virtual Network 내에 설정됨을 의미하며, 내부는 인트라넷 연결 엔드포인트만 있는 Virtual Network 내에서 API Management 배포가 설정됨을 의미합니다. 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

이름 묘사
용량 SKU의 용량(SKU의 배포된 단위 수)입니다. int
이름 Sku의 이름입니다. '기본'
'소비'
'개발자'
'프리미엄'
'Standard'(필수)

ApimResourceTags

이름 묘사

CertificateConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
storeName System.Security.Cryptography.x509certificates.StoreName 인증서 저장소 위치입니다. 루트 및 CertificateAuthority만 유효한 위치입니다. 'CertificateAuthority'
'Root'(필수)

CertificateInformation

이름 묘사
만료 인증서의 만료 날짜입니다. 날짜는 ISO 8601 표준에 지정된 yyyy-MM-ddTHH:mm:ssZ 형식을 준수합니다. string(필수)
제목 인증서의 주체입니다. string(필수)
지문 인증서의 지문입니다. string(필수)

HostnameConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
defaultSslBinding 이 호스트 이름과 연결된 인증서를 기본 SSL 인증서로 설정하려면 true를 지정합니다. 클라이언트가 SNI 헤더를 보내지 않으면 이 문제가 발생하는 인증서가 됩니다. 이 속성은 서비스에 여러 사용자 지정 호스트 이름을 사용하도록 설정하고 기본 ssl 인증서를 결정해야 하는 경우에 유용합니다. 이 설정은 프록시 호스트 이름 형식에만 적용됩니다. bool
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
hostName Api Management 서비스에서 구성할 호스트 이름입니다. string(필수)
keyVaultId Ssl 인증서를 포함하는 KeyVault 비밀에 대한 URL입니다. 버전이 포함된 절대 URL이 제공되면 ssl 인증서의 자동 업데이트가 작동하지 않습니다. 이렇게 하려면 MSI를 사용하여 Api Management 서비스를 구성해야 합니다. 비밀은 application/x-pkcs12 형식이어야 합니다. 문자열
negotiateClientCertificate 호스트 이름에서 항상 클라이언트 인증서를 협상하려면 true를 지정합니다. 기본값은 false입니다. bool
호스트 이름 형식입니다. 'DeveloperPortal'
'Management'
'포털'
'Proxy'
'Scm'(필수)

Microsoft.ApiManagement/service

이름 묘사
apiVersion api 버전 '2019-01-01'
신원 Api Management 서비스의 관리 서비스 ID입니다. ApiManagementServiceIdentity
위치 리소스 위치입니다. string(필수)
이름 리소스 이름 문자열

제약 조건:
최소 길이 = 1
최대 길이 = 1
패턴 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$(필수)
속성 API Management 서비스의 속성입니다. ApiManagementServiceProperties(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
리소스 종류 'Microsoft.ApiManagement/service'

VirtualNetworkConfiguration

이름 묘사
subnetResourceId API Management 서비스를 배포할 가상 네트워크에 있는 서브넷의 전체 리소스 ID입니다. 문자열

제약 조건:
패턴 = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플렛 묘사
내부 API Management 및 Web App 사용하여 Application Gateway

Azure
배포
Azure Web App에서 호스트되는 웹 API를 서비스하는 가상 네트워크(내부 모드) API Management 인스턴스로 인터넷 트래픽을 라우팅하는 Application Gateway입니다.
다중region Premium 계층 API Management 인스턴스 만들기

Azure 배포
이 템플릿은 추가 위치가 있는 API Management 인스턴스를 만드는 방법을 보여 줍니다. 기본 위치는 리소스 그룹의 위치와 동일합니다. 추가 위치의 경우 템플릿은 NorthCentralUs 및 미국 동부 2를 표시합니다. 기본 위치는 추가 위치와 달라야 합니다.
템플릿 사용하여 API Management 인스턴스 및 모든 하위 리소스 만들기

Azure 배포
이 템플릿은 API Management 서비스를 만들고 하위 엔터티를 구성하는 방법을 보여 줍니다.
MSI ID가 있는 API Management 인스턴스 만들기

Azure 배포
이 템플릿은 MSI ID가 있는 Azure API Management의 개발자 인스턴스를 만듭니다.
템플릿 사용하여 API Management 인스턴스 만들기

Azure 배포
이 템플릿은 Azure API Management의 개발자 인스턴스를 만듭니다.
사용자 지정 호스트 이름이 API Management 인스턴스 만들기

Azure 배포
이 템플릿은 포털에 대한 사용자 지정 호스트 이름 및 프록시에 대한 여러 사용자 지정 호스트 이름을 사용하여 Azure API Management의 인스턴스를 만드는 방법을 보여 줍니다.
프라이빗 엔드포인트 사용하여 API Management 서비스 만들기

Azure 배포
이 템플릿은 API Management 서비스, 가상 네트워크 및 가상 네트워크에 API Management 서비스를 노출하는 프라이빗 엔드포인트를 만듭니다.
KeyVault SSL을 사용하여 API Management 서비스 만들기

Azure 배포
이 템플릿은 사용자 할당 ID로 구성된 API Management 서비스를 배포합니다. 이 ID를 사용하여 KeyVault에서 SSL 인증서를 가져오고 4시간마다 확인하여 업데이트를 유지합니다.
API Management 인스턴스 만들기 및 모니터링

Azure 배포
이 템플릿은 Azure API Management 서비스 및 Log Analytics 작업 영역의 인스턴스를 만들고 Log Analytics를 사용하여 API Management 서비스에 대한 모니터링을 설정합니다.
App Gateway 사용하여 내부 VNet에서 API Management 만들기

Azure 배포
이 템플릿은 Azure Application Gateway로 보호되는 프라이빗 네트워크에서 Azure API Management 인스턴스를 만드는 방법을 보여 줍니다.
KeyVault 사용하여 사용자 지정 프록시 ssl을 사용하여 API Management 만들기

Azure 배포
이 템플릿은 Azure API Management의 인스턴스를 만들고 keyvault의 ssl 인증서를 사용하여 프록시에 대한 사용자 지정 호스트 이름을 구성하는 방법을 보여 줍니다.
Azure API Management 앞에서 Azure Front Door 만들기

Azure 배포
이 샘플에서는 Azure API Management 앞에서 Azure Front Door를 전역 부하 분산 장치로 사용하는 방법을 보여 줍니다.
공용 IP 사용하여 외부 VNet에 API Management 배포

Azure
배포
이 템플릿은 외부 모드에서 가상 네트워크의 서브넷 내에서 프리미엄 계층에서 Azure API Management 인스턴스를 만들고 서브넷에서 권장되는 NSG 규칙을 구성하는 방법을 보여 줍니다. 인스턴스는 두 가용성 영역에 배포됩니다. 또한 템플릿은 구독에서 공용 IP 주소를 구성합니다.
공용 IP 사용하여 내부 VNet에 API Management 배포

Azure 배포
이 템플릿은 내부 모드에서 가상 네트워크의 서브넷 내에서 프리미엄 계층에서 Azure API Management 인스턴스를 만들고 서브넷에서 권장되는 NSG 규칙을 구성하는 방법을 보여 줍니다. 인스턴스는 두 가용성 영역에 배포됩니다. 또한 템플릿은 구독에서 공용 IP 주소를 구성합니다.
가용성 영역 API Management 배포

Azure
배포
이 템플릿은 Azure API Management의 프리미엄 인스턴스를 만들고 가용성 영역에 배포합니다.
외부 Azure Cache for Redis 사용하여 API Management 배포

Azure
배포
이 템플릿은 외부 Azure Cache for Redis 인스턴스를 API Management 외부 캐시로 사용하여 소비 계층에서 Azure API Management 인스턴스를 만드는 방법을 보여 줍니다.
API Management 원본 사용하여 Front Door 표준/프리미엄

Azure
배포
이 템플릿은 Front Door Premium 및 API Management 인스턴스를 만들고 NSG 및 전역 API Management 정책을 사용하여 트래픽이 Front Door 원본을 통해 들어왔다는 것을 확인합니다.

Terraform(AzAPI 공급자) 리소스 정의

다음을 대상으로 하는 작업으로 서비스 리소스 유형을 배포할 수 있습니다.

  • 리소스 그룹

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.ApiManagement/서비스 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ApiManagement/service@2019-01-01"
  name = "string"
  identity = {
    type = "string"
  }
  location = "string"
  sku = {
    capacity = int
    name = "string"
  }
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    properties = {
      additionalLocations = [
        {
          location = "string"
          sku = {
            capacity = int
            name = "string"
          }
          virtualNetworkConfiguration = {
            subnetResourceId = "string"
          }
        }
      ]
      certificates = [
        {
          certificate = {
            expiry = "string"
            subject = "string"
            thumbprint = "string"
          }
          certificatePassword = "string"
          encodedCertificate = "string"
          storeName = "string"
        }
      ]
      customProperties = {
        {customized property} = "string"
      }
      enableClientCertificate = bool
      hostnameConfigurations = [
        {
          certificate = {
            expiry = "string"
            subject = "string"
            thumbprint = "string"
          }
          certificatePassword = "string"
          defaultSslBinding = bool
          encodedCertificate = "string"
          hostName = "string"
          keyVaultId = "string"
          negotiateClientCertificate = bool
          type = "string"
        }
      ]
      notificationSenderEmail = "string"
      publisherEmail = "string"
      publisherName = "string"
      virtualNetworkConfiguration = {
        subnetResourceId = "string"
      }
      virtualNetworkType = "string"
    }
  })
}

속성 값

AdditionalLocation

이름 묘사
위치 Azure 데이터 센터 지역 간의 추가 지역의 위치 이름입니다. string(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
virtualNetworkConfiguration 위치에 대한 가상 네트워크 구성입니다. virtualNetworkConfiguration

ApiManagementServiceBasePropertiesCustomProperties

이름 묘사

ApiManagementServiceIdentity

이름 묘사
ID 형식입니다. 현재 지원되는 유일한 형식은 'SystemAssigned'입니다. 'SystemAssigned'(필수)

ApiManagementServiceProperties

이름 묘사
additionalLocations API Management 서비스의 추가 데이터 센터 위치입니다. AdditionalLocation[]
인증서 API Management 서비스에 설치해야 하는 인증서 목록입니다. 설치할 수 있는 지원되는 최대 인증서는 10개입니다. CertificateConfiguration[]
customProperties API Management 서비스의 사용자 지정 속성입니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168 설정하면 모든 TLS(1.0, 1.1 및 1.2)에 대한 암호화 TLS_RSA_WITH_3DES_EDE_CBC_SHA 비활성화됩니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11 설정은 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10 설정은 API Management 서비스에서 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 설정은 백 엔드와의 통신에 TLS 1.1만 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 설정은 백 엔드와의 통신에 TLS 1.0을 사용하지 않도록 설정하는 데 사용할 수 있습니다.
Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2 설정은 API Management 서비스에서 HTTP2 프로토콜을 사용하도록 설정하는 데 사용할 수 있습니다.
PATCH 작업에서 이러한 속성을 지정하지 않으면 생략된 속성의 값이 기본값으로 다시 설정됩니다. Http2를 제외한 모든 설정의 경우 서비스가 2018년 4월 1일 또는 그 이전에 만들어진 경우 기본값이 True, 그렇지 않으면 False. Http2 설정의 기본값은 False.

설정 Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]사용하여 다음 암호화를 사용하지 않도록 설정할 수 있습니다.
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA.
예: Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256:false. 기본값은 모두 true.
ApiManagementServiceBasePropertiesCustomProperties
enableClientCertificate 속성은 소비 SKU 서비스에만 사용됩니다. 이렇게 하면 게이트웨이에 대한 각 요청에 대해 클라이언트 인증서가 표시됩니다. 이렇게 하면 게이트웨이의 정책에서 인증서를 인증하는 기능도 사용할 수 있습니다. bool
hostnameConfigurations API Management 서비스의 사용자 지정 호스트 이름 구성입니다. hostnameConfiguration[]
notificationSenderEmail 알림을 보낼 전자 메일 주소입니다. 문자열

제약 조건:
최대 길이 =
publisherEmail 게시자 전자 메일입니다. 문자열

제약 조건:
최대 길이 = (필수)
publisherName 게시자 이름입니다. 문자열

제약 조건:
최대 길이 = (필수)
virtualNetworkConfiguration API Management 서비스의 가상 네트워크 구성입니다. virtualNetworkConfiguration
virtualNetworkType API Management 서비스를 구성해야 하는 VPN의 유형입니다. 없음(기본값)은 API Management 서비스가 Virtual Network의 일부가 아님을 의미하고, 외부는 API Management 배포가 인터넷 연결 엔드포인트가 있는 Virtual Network 내에 설정됨을 의미하며, 내부는 인트라넷 연결 엔드포인트만 있는 Virtual Network 내에서 API Management 배포가 설정됨을 의미합니다. 'External'
'Internal'
'None'

ApiManagementServiceSkuProperties

이름 묘사
용량 SKU의 용량(SKU의 배포된 단위 수)입니다. int
이름 Sku의 이름입니다. '기본'
'소비'
'개발자'
'프리미엄'
'Standard'(필수)

ApimResourceTags

이름 묘사

CertificateConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
storeName System.Security.Cryptography.x509certificates.StoreName 인증서 저장소 위치입니다. 루트 및 CertificateAuthority만 유효한 위치입니다. 'CertificateAuthority'
'Root'(필수)

CertificateInformation

이름 묘사
만료 인증서의 만료 날짜입니다. 날짜는 ISO 8601 표준에 지정된 yyyy-MM-ddTHH:mm:ssZ 형식을 준수합니다. string(필수)
제목 인증서의 주체입니다. string(필수)
지문 인증서의 지문입니다. string(필수)

HostnameConfiguration

이름 묘사
증명서 인증서 정보입니다. CertificateInformation
certificatePassword 인증서 암호입니다. 문자열
defaultSslBinding 이 호스트 이름과 연결된 인증서를 기본 SSL 인증서로 설정하려면 true를 지정합니다. 클라이언트가 SNI 헤더를 보내지 않으면 이 문제가 발생하는 인증서가 됩니다. 이 속성은 서비스에 여러 사용자 지정 호스트 이름을 사용하도록 설정하고 기본 ssl 인증서를 결정해야 하는 경우에 유용합니다. 이 설정은 프록시 호스트 이름 형식에만 적용됩니다. bool
encodedCertificate Base64로 인코딩된 인증서입니다. 문자열
hostName Api Management 서비스에서 구성할 호스트 이름입니다. string(필수)
keyVaultId Ssl 인증서를 포함하는 KeyVault 비밀에 대한 URL입니다. 버전이 포함된 절대 URL이 제공되면 ssl 인증서의 자동 업데이트가 작동하지 않습니다. 이렇게 하려면 MSI를 사용하여 Api Management 서비스를 구성해야 합니다. 비밀은 application/x-pkcs12 형식이어야 합니다. 문자열
negotiateClientCertificate 호스트 이름에서 항상 클라이언트 인증서를 협상하려면 true를 지정합니다. 기본값은 false입니다. bool
호스트 이름 형식입니다. 'DeveloperPortal'
'Management'
'포털'
'Proxy'
'Scm'(필수)

Microsoft.ApiManagement/service

이름 묘사
신원 Api Management 서비스의 관리 서비스 ID입니다. ApiManagementServiceIdentity
위치 리소스 위치입니다. string(필수)
이름 리소스 이름 문자열

제약 조건:
최소 길이 = 1
최대 길이 = 1
패턴 = ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$(필수)
속성 API Management 서비스의 속성입니다. ApiManagementServiceProperties(필수)
sku API Management 서비스의 SKU 속성입니다. ApiManagementServiceSkuProperties(필수)
태그 리소스 태그 태그 이름 및 값의 사전입니다.
리소스 종류 "Microsoft.ApiManagement/service@2019-01-01"

VirtualNetworkConfiguration

이름 묘사
subnetResourceId API Management 서비스를 배포할 가상 네트워크에 있는 서브넷의 전체 리소스 ID입니다. 문자열

제약 조건:
패턴 = ^/subscriptions/[^/]*/resourceGroups/[^/]*/providers/Microsoft.(ClassicNetwork|Network)/virtualNetworks/[^/]*/subnets/[^/]*$