네트워킹 및 보안 기능 구성

완료됨

Azure Database for MySQL – 유연한 서버의 주요 네트워킹 및 보안 기능에는 액세스 제어, 연결, ID, 역할 및 권한 관리를 위한 중앙 집중식 플랫폼인 Microsoft Entra ID 지원이 포함됩니다. 또한 MySQL 유연한 서버는 기본적으로 전송 중인 모든 데이터를 암호화하고 Azure 또는 고객 관리형 키를 사용하여 미사용 데이터를 암호화할 수 있도록 합니다.

네트워킹

네트워크 액세스 구성

MySQL 유연한 서버를 만들 때 Azure Virtual Network를 통한 프라이빗 액세스 또는 선택적 프라이빗 엔드포인트를 사용하여 허용 목록에 있는 IP 주소에 대한 공용 액세스를 선택할 수 있습니다. 기본 섹션을 완료한 후 다음: 네트워킹을 선택한 다음, 공용 액세스 및 프라이빗 엔드포인트 또는 프라이빗 액세스를 선택합니다.

공용 액세스와 프라이빗 액세스 간의 네트워크 연결 선택 스크린샷.

공용 액세스 및 프라이빗 엔드포인트를 선택하는 경우 데이터베이스를 인터넷에 노출할지 여부를 선택할 수 있습니다. 공용 액세스 허용을 선택 취소하면 프라이빗 엔드포인트에서만 데이터베이스에 액세스할 수 있으며 공용 IP 주소를 사용하지 않습니다. 공용 인터넷 액세스를 유지하려면 공용 액세스 허용 을 선택한 다음 방화벽 규칙 섹션에서 허용 목록에 IP 주소 또는 범위를 추가합니다. Azure 네트워크의 모든 Azure 서비스를 허용 목록에 추가하려면 Azure 내의 모든 Azure 서비스에서 이 서버로의 공용 액세스 허용을 선택합니다.

공용 액세스에 대한 네트워크 연결 선택 및 방화벽 규칙 목록의 스크린샷

공용 액세스 외에 또는 대신 프라이빗 엔드포인트를 구성할 수 있습니다. Wingtip Toys는 온-프레미스 네트워크와 Azure 간에 VPN을 운영할 계획이므로 프라이빗 엔드포인트를 건너뛰겠습니다. 프라이빗 링크 설정에 대한 자세한 내용은 참조 설명서를 참조하세요.

Virtual Network에서만 연결을 허용하려면 프라이빗 액세스를 선택한 다음 적절한 구독, 가상 네트워크서브넷을 선택합니다. 가상 네트워크 및 서브넷을 선택하지 않으면 새 네트워크 및 서브넷이 만들어집니다.

구독, 가상 네트워크 및 서브넷을 포함한 가상 네트워크에 대한 설정의 스크린샷.

마지막으로, 변경될 수 있는 IP 주소 대신 정규화된 도메인 이름으로 연결하도록 프라이빗 DNS 통합 을 설정해야 합니다. 기존 DNS 영역을 선택하거나 Azure에서 새 영역을 만들도록 합니다.

프라이빗 DNS 통합 구성의 스크린샷.

전송 중 암호화 구성

기본적으로 MySQL 유연한 서버는 TLS(전송 계층 보안) 버전 1.2를 사용하여 암호화된 연결만 허용합니다. TLS 1.3을 지원하는 새 애플리케이션을 개발하는 경우 최신 버전을 지원하거나 적용하는 것이 좋습니다. 이렇게 하려면 다음 단계를 수행하십시오.

  1. Azure Portal에서 TLS 1.3을 사용하여 연결하려는 MySQL 유연한 서버를 선택합니다.
  2. 서버 매개 변수 섹션의 상위 또는 모든 필터의 검색 창에 tls_version 입력합니다.
  3. VALUE 드롭다운 목록에서 TLSv1.2 및/또는 TLSv1.3을 선택한 다음 저장을 선택합니다. server-parameters-tls-version의 스크린샷.

require_secure_transport 매개 변수의 값을 해제로 설정하여 암호화되지 않은 연결을 허용할 수도 있지만, 엄밀히 필요한 경우가 아니면 권장되지 않습니다.

클라우드용 Microsoft Defender

클라우드용 Microsoft Defender는 비정상적이거나 의심스러운 데이터베이스 작업을 검색하고 경고하는 비용 효율적인 방법입니다. 사용하도록 설정하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 Defender로 보호하려는 MySQL 유연한 서버를 선택합니다.

  2. 클라우드용 Microsoft Defender 섹션에서 [사용]을 선택합니다.

클라우드용 Microsoft Defender를 사용하도록 설정하는 이러한 섹션의 스크린샷

경고 구성 방법을 포함하여 Defender에 대해 자세히 알아보려면 참조 설명서를 확인합니다.

Microsoft Entra ID 인증을 사용하여 사용하도록 설정 및 연결

시작하기 전에 적절하게 구성된 UMI(사용자 관리 ID)가 필요합니다. ID에는 디렉터리 읽기 권한자 역할 또는 이러한 개별 권한( User.Read.All, GroupMember.Read.AllApplication.Read.ALL)이 필요합니다. 이러한 권한을 추가하는 방법에 대한 자세한 내용은 이 자습서를 참조 하세요.

Azure Database for MySQL 유연한 서버에 대해 Microsoft Entra ID 인증을 사용하도록 설정하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 Microsoft Entra ID를 사용하여 연결하려는 MySQL 유연한 서버를 선택합니다.

  2. 보안 섹션에서 인증을 선택합니다.

    Microsoft Entra ID 구성의 스크린샷.

  3. 액세스 권한 할당 제목 아래에서 Microsoft Entra 인증만(네이티브 MySQL 사용자/암호 로그인 사용 안 함) 또는 MySQL 및 Microsoft Entra 인증(네이티브 MySQL Microsoft Entra 로그인 허용)을 선택합니다.

  4. ID 선택 제목 아래에서 이 단원의 앞부분에서 언급한 UMI를 선택합니다.

  5. Microsoft Entra 관리자가 될 Microsoft Entra 사용자 또는 그룹을 선택합니다. 그룹을 선택하면 그룹의 모든 구성원이 관리자입니다. 관리 사용자 또는 그룹은 하나만 가질 수 있으며 다른 관리 사용자를 선택하면 이전 관리 사용자가 바뀝니다.

    Microsoft Entra ID가 사용하도록 설정되면 이제 다음 단계를 수행하여 Microsoft Entra ID 인증을 사용하여 MySQL 유연한 서버에 연결할 수 있습니다.

  6. Azure를 사용하여 셸을 인증합니다. Azure Cloud Shell을 사용하는 경우 ID가 세션에서 이미 구성되어 있으므로 로그인할 필요가 없습니다. 인증되지 않은 터미널을 사용하는 경우 다음 명령을 실행합니다.

    az login
    az account set --subscription <subscription_id>
    
  7. 인증된 셸에서 다음 명령을 실행하여 액세스 토큰을 검색합니다.

    az account get-access-token --resource-type oss-rdbms (이 명령은 OSS-RDBMS 유형의 리소스를 위해 액세스 토큰을 가져옵니다.)

  8. 로그인하려면 제공된 액세스 토큰을 복사하여 암호로 사용합니다. 액세스 토큰을 mysql 클라이언트에 직접 전달하려면 Linux에서 다음 명령을 실행합니다.

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
    

    PowerShell을 사용하는 경우 다음 명령을 실행합니다.

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)
    

    MySQL Workbench와 같은 다른 클라이언트를 사용하는 경우 액세스 토큰을 암호 필드에 붙여넣기만 하면 됩니다.

고객 관리형 키로 미사용 데이터 암호화

Azure Portal 또는 Azure CLI를 사용하여 미사용 암호화를 구성할 수 있습니다. 그러나 고객 관리형 키로 암호화를 사용하도록 설정하려면 먼저 다음 필수 조건이 충족되었는지 확인해야 합니다.

  • UMI(사용자 관리 ID). 키 자격 증명 모음에 액세스하려면 데이터베이스에 대한 UMI가 필요합니다.

  • 사용 권한. 역할 기반 액세스(IAM) 또는 자격 증명 모음 액세스 정책을 설정하고 UMI에 다음 권한을 부여합니다. 가져오기, 나열, 키 래핑 및 키 래핑 해제입니다.

  • [일시 삭제] 사용(/azure/key-vault/general/soft-delete-overview" /l "soft-delete-behavior). 실수로 암호화 키에 대한 액세스 권한을 상실하면 데이터가 영구적으로 손실될 수 있습니다. 보호 계층으로 일시 삭제를 사용하도록 설정합니다. Azure Portal을 사용하여 새 키 자격 증명 모음을 만들면 기본적으로 일시 삭제가 사용하도록 설정됩니다.

    자격 증명 모음 이름은 알지만 ID는 모르는 경우 다음을 실행하여 찾아볼 수 있습니다.

    az keyvault show --name $KEY_VAULT_NAME
    

    기존 자격 증명 모음에서 일시 삭제를 사용하도록 설정하려면 다음을 실행합니다.

    az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=true
    
  • 제거 보호를 사용하도록 설정합니다. 일시 삭제된 키는 사용자 또는 코드 오류로 인해 보존 기간이 끝나기 전에 여전히 잘못 제거될 수 있습니다. 제거 보호를 사용하면 삭제된 개체가 영구적으로 제거되기 전에 보존 기간이 설정됩니다.

이제 Azure Portal 또는 Azure CLI를 사용하여 미사용 데이터를 암호화하도록 고객 관리형 키를 구성할 수 있습니다.

Azure Portal을 사용하는 경우:

  1. 유연한 서버 인스턴스로 이동한 다음 보안 아래에서 데이터 암호화를 선택합니다.

    고객 관리형 키를 선택하는 설정 페이지의 스크린샷

  2. 데이터 암호화에서 +를 선택합니다. 사용자 할당 관리 ID 선택 대화 상자에서 필수 구성 요소에서 식별된 사용자 할당 관리 ID를 선택하고 ID를 선택한 다음 추가를 선택합니다.

    사용자가 할당한 관리 ID를 선택하는 대화 상자의 스크린샷.

  3. 그런 다음 키 식별자를 입력 하고 ID를 입력하거나 키 선택대화 상자 에서 식별자를 지정하거나 키 자격 증명 모음 및 키를 선택하여 키를 선택합니다.

  4. 저장을 선택합니다.

Azure CLI를 사용하는 경우 다음 명령을 실행합니다.

az mysql flexible-server update --resource-group $RESOURCE_GROUP --name $TEST_SERVER --key $KEY_IDENTIFIER --identity $IDENTITY