Azure Stack Hub에서 Event Hubs에 대 한 암호를 회전 하는 방법How to rotate secrets for Event Hubs on Azure Stack Hub

이 문서에서는 Event Hubs 리소스 공급자에서 사용 하는 비밀을 회전 하는 방법을 보여 줍니다.This article will show you how to rotate the secrets used by the Event Hubs resource provider.

개요 및 필수 구성 요소Overview and prerequisites

참고

값 추가 리소스 공급자에 대 한 비밀 회전은 현재 PowerShell을 통해서만 지원 됩니다.Secret rotation for value-add resource providers is currently only supported via PowerShell.

Azure Stack 허브 인프라와 마찬가지로 값 추가 리소스 공급자는 내부 및 외부 암호를 모두 사용 합니다.Like the Azure Stack Hub infrastructure, value-add resource providers use both internal and external secrets. 비밀은 X509 인증서에 의해 유지 관리 되는 암호 및 암호화 키를 포함 하 여 여러 가지 형태를 사용할 수 있습니다.Secrets can take multiple forms, including passwords and the encryption keys maintained by X509 certificates. 운영자는 다음을 수행 해야 합니다.As an operator, you're responsible for:

  • 리소스 공급자 끝점을 보호 하는 데 사용 되는 새 TLS 인증서와 같은 업데이트 된 외부 암호를 제공 합니다.Providing updated external secrets, such as a new TLS certificate used to secure resource provider endpoints.
  • 정기적으로 리소스 공급자 보안 순환 관리Managing resource provider secret rotation on a regular basis.

회전 프로세스 준비 중:In preparation for the rotation process:

  1. 필요한 PFX 형식에 대 한 세부 정보를 포함 하 여 X509 인증서를 획득/갱신 하기 전에 중요 한 필수 조건 정보에 대 한 Azure Stack 허브 PKI (공개 키 인프라) 인증서 요구 사항을 검토 합니다.Review Azure Stack Hub public key infrastructure (PKI) certificate requirements for important prerequisite information before acquiring/renewing your X509 certificate, including details on the required PFX format. 또한 선택적인 PaaS 인증서 섹션에 지정 된 요구 사항을 검토 하 여 특정 값-리소스 공급자를 추가 합니다.Also review the requirements specified in the Optional PaaS certificates section, for your specific value-add resource provider.

  2. 아직 수행 하지 않은 경우 계속 하기 전에 Azure Stack 허브에 대 한 PowerShell Az module을 설치 합니다.If you haven't already, Install PowerShell Az module for Azure Stack Hub before continuing. Azure Stack 허브 비밀 회전의 경우 버전 2.0.2-preview 이상이 필요 합니다.Version 2.0.2-preview or later is required for Azure Stack Hub secret rotation. 자세한 내용은 Azure Stack Hub에서 AzureRM에서 Azure PowerShell Az로 마이그레이션을 참조 하세요.For more information, see Migrate from AzureRM to Azure PowerShell Az in Azure Stack Hub.

새 TLS 인증서 준비Prepare a new TLS certificate

그런 다음, 값 추가 리소스 공급자 끝점의 보안을 유지 하기 위해 TLS 인증서를 만들거나 갱신 합니다.Next, create or renew your TLS certificate for securing the value-add resource provider endpoints:

  1. 리소스 공급자에 대 한 인증서 갱신을 위한 csr (인증서 서명 요청) 생성 의 단계를 완료 합니다.Complete the steps in Generate certificate signing requests (CSRs) for certificate renewal for your resource provider. 여기에서 Azure Stack 허브 준비 검사기 도구를 사용 하 여 CSR을 만듭니다.Here you use the Azure Stack Hub Readiness Checker tool to create the CSR. "다른 Azure Stack 허브 서비스에 대 한 인증서 요청 생성" 단계에서 리소스 공급자에 대 한 올바른 cmdlet을 실행 해야 합니다.Be sure to run the correct cmdlet for your resource provider, in the step "Generate certificate requests for other Azure Stack Hub services". 예를 들어 New-AzsHubEventHubsCertificateSigningRequest Event Hubs에 사용 됩니다.For example New-AzsHubEventHubsCertificateSigningRequest is used for Event Hubs. 완료 되 면 생성 된를 제출 합니다. 새 인증서에 대 한 요청 파일을 CA (인증 기관)에 요청 합니다.When finished, you submit the generated .REQ file to your Certificate Authority (CA) for the new certificate.

  2. CA에서 인증서 파일을 받은 후 배포 또는 순환을 위한 인증서 준비의 단계를 완료 합니다.Once you've received your certificate file from the CA, complete the steps in Prepare certificates for deployment or rotation. 준비 검사 도구를 다시 사용 하 여 CA에서 반환 된 파일을 처리 합니다.You use the Readiness Checker tool again, to process the file returned from the CA.

  3. 마지막으로 Azure Stack 허브 PKI 인증서 유효성 검사의 단계를 완료 합니다.Finally, complete the steps in Validate Azure Stack Hub PKI certificates. 준비 검사 도구를 한 번 더 사용 하 여 새 인증서에 대 한 유효성 검사 테스트를 수행 합니다.You use the Readiness Checker tool once more, to perform validation tests on your new certificate.

비밀 회전Rotate secrets

마지막으로 리소스 공급자의 최신 배포 속성을 확인 하 고이를 사용 하 여 비밀 회전 프로세스를 완료 합니다.Finally, determine the resource provider's latest deployment properties and use them to complete the secret rotation process.

배포 속성 결정Determine deployment properties

리소스 공급자는 Azure Stack 허브 환경에 버전이 지정 된 제품 패키지로 배포 됩니다.Resource providers are deployed into your Azure Stack Hub environment as a versioned product package. 패키지에는 형식으로 고유한 패키지 ID가 할당 됩니다 '<product-id>.<installed-version>' .Packages are assigned a unique package ID, in the format '<product-id>.<installed-version>'. 여기서 <product-id> 는 리소스 공급자를 나타내는 고유 문자열이 고는 <installed-version> 특정 버전을 나타냅니다.Where <product-id> is a unique string representing the resource provider, and <installed-version> represents a specific version. 각 패키지와 연결 된 암호는 Azure Stack Hub Key Vault 서비스에 저장 됩니다.The secrets associated with each package are stored in the Azure Stack Hub Key Vault service.

관리자 권한 PowerShell 콘솔을 열고 다음 단계를 완료 하 여 리소스 공급자의 암호를 회전 하는 데 필요한 속성을 결정 합니다.Open an elevated PowerShell console and complete the following steps to determine the properties required to rotate the resource provider's secrets:

  1. 운영자 자격 증명을 사용 하 여 Azure Stack 허브 환경에 로그인 합니다.Sign in to your Azure Stack Hub environment using your operator credentials. Powershell 로그인 스크립트는 powershell을 사용 하 여 Azure Stack 허브에 연결을 참조 하세요.See Connect to Azure Stack Hub with PowerShell for PowerShell sign-in script. PowerShell Az cmdlet (AzureRM 대신)을 사용 하 여 끝점 Url 및 디렉터리 테 넌 트 이름과 같은 모든 자리 표시자 값을 바꾸어야 합니다.Be sure to use the PowerShell Az cmdlets (instead of AzureRM), and replace all placeholder values, such as endpoint URLs and directory tenant name.

  2. Cmdlet을 실행 Get-AzsProductDeployment 하 여 최신 리소스 공급자 배포 목록을 검색 합니다.Run the Get-AzsProductDeployment cmdlet to retrieve a list of the latest resource provider deployments. 반환 된 "value" 컬렉션에는 배포 된 각 리소스 공급자에 대 한 요소가 포함 됩니다.The returned "value" collection contains an element for each deployed resource provider. 관심 있는 리소스 공급자를 찾고 다음 속성의 값을 기록해 둡니다.Find the resource provider of interest and make note of the values for these properties:

    • "name" -값의 두 번째 세그먼트에 있는 리소스 공급자 제품 ID를 포함 합니다."name" - contains the resource provider product ID in the second segment of the value.
    • "properties"."deployment"."version" -현재 배포 된 버전 번호를 포함 합니다."properties"."deployment"."version" - contains the currently deployed version number.

    다음 예제에서는 컬렉션의 첫 번째 요소에서 Event Hubs RP 배포를 확인 합니다 .이 배포는 제품 ID가이 "microsoft.eventhub" 고 버전은입니다 "1.2003.0.0" .In the following example, notice the Event Hubs RP deployment in the first element in the collection, which has a product ID of "microsoft.eventhub", and version "1.2003.0.0":

    PS C:\WINDOWS\system32> Get-AzsProductDeployment -AsJson
    VERBOSE: GET https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 2656-char response, StatusCode = OK
    {
        "value":  [
                      {
                          "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments/microsoft.eventhub",
                          "name":  "global/microsoft.eventhub",
                          "type":  "Microsoft.Deployment.Admin/locations/productDeployments",
                          "properties":  {
                                             "status":  "DeploymentSucceeded",
                                             "subscriptionId":  "b37ae55a-a6c6-4474-ba97-81519412adf5",
                                             "deployment":  {
                                                                "version":  "1.2003.0.0",
                                                                "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                "parameters":  {
    
                                                                               }
                                                            },
                                             "lastSuccessfulDeployment":  {
                                                                              "version":  "1.2003.0.0",
                                                                              "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                              "parameters":  {
    
                                                                                             }
                                                                          },
                                             "provisioningState":  "Succeeded"
                                         }
                      },
                      {
                      ...
                      }
                  ]
    }
    
  3. 리소스 공급자 제품 ID 및 버전을 연결 하 여 리소스 공급자의 패키지 ID를 작성 합니다.Build the resource provider's package ID, by concatenating the resource provider product ID and version. 예를 들어 이전 단계에서 파생 된 값을 사용 하 여 Event Hubs RP 패키지 ID는 microsoft.eventhub.1.2003.0.0 입니다.For example, using the values derived in the previous step, the Event Hubs RP package ID is microsoft.eventhub.1.2003.0.0.

  4. 이전 단계에서 파생 된 패키지 ID를 사용 하 여를 실행 Get-AzsProductSecret -PackageId 하 여 리소스 공급자가 사용 중인 비밀 유형 목록을 검색 합니다.Using the package ID derived in the previous step, run Get-AzsProductSecret -PackageId to retrieve the list of secret types being used by the resource provider. 반환 된 value 컬렉션에서 속성의 값이 포함 된 요소를 찾습니다 "Certificate" "properties"."secretKind" .In the returned value collection, find the element containing a value of "Certificate" for the "properties"."secretKind" property. 이 요소는 RP의 인증서 암호에 대 한 속성을 포함 합니다.This element contains properties for the RP's certificate secret. 이 인증서 비밀에 할당 된 이름을 적어 둡니다 .이 이름은 속성의 마지막 세그먼트로 식별 됩니다 "name" "properties" .Make note of the name assigned to this certificate secret, which is identified by the last segment of the "name" property, just above "properties".

    다음 예제에서는 Event Hubs RP에 대해 반환 된 비밀 컬렉션에 "Certificate" 라는 비밀이 포함 되어 있습니다 aseh-ssl-gateway-pfx .In the following example, the secrets collection returned for the Event Hubs RP contains a "Certificate" secret named aseh-ssl-gateway-pfx.

    PS C:\WINDOWS\system32> Get-AzsProductSecret -PackageId 'microsoft.eventhub.1.2003.0.0' -AsJson
    VERBOSE: GET
    https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 617-char response, StatusCode = OK
    {
        "value":  [
                        {
                            "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets/aseh-ssl-gateway-pfx",
                            "name":  "global/microsoft.eventhub.1.2003.0.0/aseh-ssl-gateway-pfx",
                            "type":  "Microsoft.Deployment.Admin/locations/productPackages/secrets",
                            "properties":  {
                                            "secretKind":  "Certificate",
                                            "description":  "Event Hubs gateway SSL certificate.",
                                            "expiresAfter":  "P730D",
                                            "secretDescriptor":  {
    
                                                                    },
                                            "secretState":  {
                                                                "status":  "Deployed",
                                                                "rotationStatus":  "None",
                                                                "expirationDate":  "2022-03-31T00:16:05.3068718Z"
                                                            },
                                            "provisioningState":  "Succeeded"
                                        }
                        },
                        ...
                    ]
    }
    

비밀 회전Rotate the secrets

  1. Cmdlet을 사용 하 여 Set-AzsProductSecret 새 인증서를 Key Vault으로 가져올 수 있습니다 .이는 회전 프로세스에서 사용 됩니다.Use the Set-AzsProductSecret cmdlet to import your new certificate to Key Vault, which will be used by the rotation process. 스크립트를 실행 하기 전에 변수 자리 표시자 값을 적절 하 게 바꿉니다.Replace the variable placeholder values accordingly before running the script:

    자리 표시자Placeholder DescriptionDescription 예제 값Example value
    <product-id> 최신 리소스 공급자 배포의 제품 ID입니다.The product ID of the latest resource provider deployment. microsoft.eventhub
    <installed-version> 최신 리소스 공급자 배포의 버전입니다.The version of the latest resource provider deployment. 1.2003.0.0
    <cert-secret-name> 인증서 암호를 저장 하는 이름입니다.The name under which the certificate secret is stored. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> 인증서 PFX 파일의 경로입니다.The path to your certificate PFX file. C:\dir\eh-cert-file.pfx
    <pfx-password> 인증서에 할당 된 암호입니다. PFX 파일.The password assigned to your certificate .PFX file. strong@CertSecret6
    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. 마지막으로, cmdlet을 사용 Invoke-AzsProductRotateSecretsAction 하 여 내부 및 외부 암호를 회전 합니다.Finally, use the Invoke-AzsProductRotateSecretsAction cmdlet to rotate the internal and external secrets:

    참고

    회전 프로세스를 완료 하는 데 약 3.5 ~ 4 시간이 걸립니다.It takes approximately 3.5 - 4 hours to complete the rotation process.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    PowerShell 콘솔에서 또는 Marketplace 서비스에서 리소스 공급자를 선택 하 여 관리자 포털에서 비밀 회전 진행률을 모니터링할 수 있습니다.You can monitor secret rotation progress in either the PowerShell console, or in the administrator portal by selecting the resource provider in the Marketplace service:

    비밀-회전 진행률secret-rotation-progress

문제 해결Troubleshooting

비밀 회전이 오류 없이 성공적으로 완료 되어야 합니다.Secret rotation should complete successfully without errors. 관리자 포털에서 다음 조건 중 하나라도 만족 하는 경우 지원 요청을 여세요 .If you experience any of the following conditions in the administrator portal, open a support request for assistance:

  • Event Hubs 리소스 공급자에 연결 하는 문제를 포함 한 인증 문제Authentication issues, including problems connecting to the Event Hubs resource provider.
  • 리소스 공급자를 업그레이드 하거나 구성 매개 변수를 편집할 수 없습니다.Unable to upgrade resource provider, or edit configuration parameters.
  • 사용 메트릭이 표시 되지 않습니다.Usage metrics aren't showing.
  • 청구서를 생성 하지 않습니다.Bills aren't being generated.
  • 백업이 발생 하지 않습니다.Backups aren't occurring.

다음 단계Next steps

Azure Stack 허브 인프라 비밀을 회전 하는 방법에 대 한 자세한 내용은 Azure Stack hub에서 비밀 회전을 참조 하세요.For details on rotating your Azure Stack Hub infrastructure secrets, visit Rotate secrets in Azure Stack Hub.