【Azure】Application Gateway와 Key Vault를 함께 사용하여 SSL 인증서 설정 (Azure CLI)

소개



Application Gateway v2 SKU는 서버 인증서용 Key Vault와의 통합을 지원합니다. Application Gateway의 SSL 인증서 설정에 Key Vault를 이용하는 것, 인증서 갱신시의 리스크 저감 등의 이점이 있다. 자세한 내용은 공식 문서를 참조하십시오.
htps : // / cs. mic로소 ft. 코 m / 쟈 jp / 아즈레 / 아 p ぃ 카치 온 - 테와 y / 케 y ゔ ぁ

이 기사에서는 Azure CLI를 사용하여 Application Gateway와 Key Vault를 연결하고 SSL 인증서를 등록하는 절차를 설명합니다.

절차





절차 개요



이하에 순서 개요를 나타낸다. Application Gateway와 SSL 인증서는 미리 준비되어 있으며 운영 단말기에 Azure CLI가 설치되어 있다고 가정합니다.
  • 초기 설정
  • Key Vault 컨테이너 만들기
  • 관리 ID 생성
  • 생성된 관리 ID를 Application Gateway에 할당
  • Key Vault 액세스 정책에 관리 ID 추가

  • SSL 인증서 등록
  • SSL 인증서를 Key Vault로 가져오고 인증서의 sid (버전 정보 제외)를 변수에 저장합니다.
  • Key Vault에 저장된 인증서를 Application Gateway에 등록합니다.


  • 절차 설명


    # Configure your resources
    appgwName=""
    appgwResgp=""
    keyvaultResgp=""
    vaultName=""
    location=""
    sslCertName=""  # SSL証明書の Azure Portal での表示名になる
    
    # Azure にログイン
    az login
    az account set -s "{SUBSCRIPTION_ID}"
    
    #### 1. 初期設定 ####
    # One time operation, create Azure key vault and certificate (can done through portal as well)
    az keyvault create -n $vaultName -g $keyvaultResgp --enable-soft-delete -l $location
    
    # One time operation, create user-assigned managed identity
    az identity create -n appgw-id -g $appgwResgp -l $location
    identityID=$(az identity show -n appgw-id -g $appgwResgp -o tsv --query "id")
    identityPrincipal=$(az identity show -n appgw-id -g $appgwResgp -o tsv --query "principalId")
    
    # One time operation, assign the identity to Application Gateway
    az network application-gateway identity assign \
      --gateway-name $appgwName \
      --resource-group $appgwResgp \
      --identity $identityID
    
    # One time operation, assign the identity GET secret access to Azure Key Vault
    az keyvault set-policy \
    -n $vaultName \
    -g $keyvaultResgp \
    --object-id $identityPrincipal \
    --secret-permissions get
    
    
    #### 2. SSL証明書の登録 ####
    # For each new certificate, create a cert on keyvault and add unversioned secret id to Application Gateway
    az keyvault certificate import  \
    --file {ssl sertification file}  \
    --password {ssl sertification password} \
    --name $sslCertName  \
    --vault-name $vaultName
    
    versionedSecretId=$(az keyvault certificate show -n $sslCertName --vault-name $vaultName --query "sid" -o tsv)
    
    unversionedSecretId=$(echo $versionedSecretId | cut -d'/' -f-5) # remove the version from the url
    
    # For each new certificate, Add the certificate to AppGw
    az network application-gateway ssl-cert create \
    -n $sslCertName \
    --gateway-name $appgwName \
    --resource-group $appgwResgp \
    --key-vault-secret-id $unversionedSecretId # ssl certificate with name "$sslCertName" will be configured on AppGw
    
    
    #### 参考:証明書確認コマンド ####
    az keyvault certificate list --vault-name $vaultName
    az network application-gateway ssl-cert list -g $appgwResgp --gateway-name $appgwName
    

    위의 절차에 따라 Application Gateway에 SSL 인증서가 등록됩니다.

    AKS에서 AGIC 연계하는 경우 배포 매니페스트에 appgw.ingress.kubernetes.io/appgw-ssl-certificate: {SSL証明書の登録名}를 추가하여 SSL 인증서를 사용할 수 있습니다. 자세한 내용은 【Azure】AGIC에서 SSL 증명서를 이용하는 【AKS】을 참조하십시오.

    포인트


  • az network application-gateway ssl-cert create 의 --key-vault-secret-id 에 지정하는 파라미터는, certificates id 는 아니고, secret id (의 버젼 정보를 삭제한 값)이다.
    ×: https://example-key.vault.azure.net/certificates/test-com○: https://example-key.vault.azure.net/secrets/test-com
  • 참고*2은 AKS의 AGIC에서 사용하는 서비스 주체에 관리 ID의 "Managed Identity Operator"권한을 부여하는 절차를 설명합니다. 필요성을 몰랐기 때문에 본 기사에서는 건너뛰고 있다.

  • 참고


  • Key Vault 인증서를 사용한 TLS 종단
    htps : // / cs. 미 c 로소 ft. 코 m / 자 jp / 아즈레 / 아 p ぃ 카치 온 - 테와 y / 케 y - ぁ
  • Configure certificate from Key Vault to AppGw
    htps : // 오즈레. 기주 b. 이오 / 아 p ぃ か ち ー ー ー ー ー ー ー ク ベ ネ
  • Application Gateway v2의 Key Vault 연동을 시도했습니다.
    htps : // bg. 자주. jp/엔트리/20190428/1556442190
  • 좋은 웹페이지 즐겨찾기