스토리지 계정 액세스 키 관리

스토리지 계정을 만들면 Azure는 해당 계정에 대해 2개의 512비트 스토리지 계정 액세스 키를 만듭니다. 이러한 키는 공유 키 권한 부여를 통하거나 또는 공유 키로 서명된 SAS 토큰을 통해 스토리지 계정의 데이터에 대한 액세스 권한을 부여할 수 있습니다.

Microsoft는 Azure Key Vault를 사용하여 액세스 키를 관리하고, 키를 정기적으로 회전하고 다시 생성할 것을 권장합니다. Azure Key Vault를 사용하면 애플리케이션을 중단하지 않고 쉽게 키를 회전할 수 있습니다. 키를 수동으로 회전할 수도 있습니다.

액세스 키 보호

스토리지 계정 액세스 키는 스토리지 계정의 구성과 데이터에 대한 모든 권한을 부여하는 데 사용할 수 있습니다. 항상 액세스 키를 보호해야 합니다. Azure Key Vault를 사용하여 키를 안전하게 관리하고 회전합니다. 공유 키에 대한 액세스는 사용자에게 스토리지 계정의 구성 및 스토리지 계정의 데이터에 대한 모든 권한을 부여합니다. 공유 키에 대한 액세스는 신중하게 제한되고 모니터링되어야 합니다. Microsoft Entra ID 기반 권한 부여를 사용할 수 없는 시나리오에서는 액세스의 범위가 제한된 SAS 토큰을 사용합니다. 액세스 키를 하드 코딩하거나 다른 사용자가 액세스할 수 있는 일반 텍스트로 저장하지 않도록 합니다. 키가 손상되었다고 생각되면 키를 교체하세요.

Important

Microsoft는 계정 키(공유 키 권한 부여)를 사용하는 것보다 가능하면 Microsoft Entra ID를 사용하여 Blob, 큐 및 테이블 데이터에 대한 요청에 권한을 부여하는 것을 권장합니다. Microsoft Entra ID를 통한 권한 부여는 공유 키 권한 부여보다 뛰어난 보안과 사용 편의성을 제공합니다. 애플리케이션에서 Microsoft Entra 권한 부여를 사용하는 방법에 대한 자세한 내용은 Azure 서비스를 사용하여 .NET 애플리케이션을 인증하는 방법을 참조하세요. SMB Azure 파일 공유의 경우에는 온-프레미스 AD DS(Active Directory Domain Services) 통합 또는 Microsoft Entra Kerberos 인증을 사용하는 것이 좋습니다.

사용자가 공유 키를 사용하여 스토리지 계정의 데이터에 액세스하지 못하도록 하려면 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않을 수 있습니다. 최소한의 권한이 필요한 데이터에 대한 세분화된 액세스는 보안 모범 사례로 권장됩니다. Microsoft Entra ID 기반 권한 부여는 OAuth를 지원하는 시나리오에 사용해야 합니다. SMB를 통한 Azure Files에는 Kerberos 또는 SMTP를 사용해야 합니다. REST를 통한 Azure Files 경우에는 SAS 토큰을 사용할 수 있습니다. 의도하지 않은 사용을 방지하기 위해 필요하지 않은 경우 공유 키 액세스를 사용하지 않도록 설정해야 합니다. 자세한 내용은 Azure Storage 계정에 대한 공유 키 권한 부여 방지를 참조하세요.

Microsoft Entra 조건부 액세스 정책을 사용하여 Azure Storage 계정을 보호하려면 스토리지 계정에 대한 공유 키 권한 부여를 허용하지 않아야 합니다.

공유 키 액세스를 사용하지 않도록 설정했음에도 진단 로그에 공유 키 권한 부여가 보고된 경우, 이는 신뢰할 수 있는 액세스가 스토리지에 액세스하는 데 사용되고 있음을 나타냅니다. 자세한 내용은 구독에 등록된 리소스에 대한 신뢰할 수 있는 액세스를 참조하세요.

계정 액세스 키 보기

Azure Portal, PowerShell 또는 Azure CLI를 사용하여 계정 액세스 키를 보고 복사할 수 있습니다. 또한 Azure Portal은 복사할 수 있는 스토리지 계정에 연결 문자열을 제공합니다.

Azure Portal에서 스토리지 계정 액세스 키 또는 연결 문자열을 보고 복사하는 방법은 다음과 같습니다:

  1. Azure Portal에서 스토리지 계정으로 이동합니다.

  2. 보안 + 네트워킹에서 액세스 키를 선택합니다. 계정 액세스 키는 물론 각 키의 전체 연결 문자열이 나타납니다.

  3. 키 표시를 선택하여 액세스 키와 연결 문자열을 표시하고 단추를 사용하여 값을 복사할 수 있습니다.

  4. key1에서 값을 찾습니다. 복사 단추를 선택하여 계정 키를 복사합니다.

  5. 또는 전체 연결 문자열을 복사할 수 있습니다. key1에서 연결 문자열 값을 찾습니다. 복사 단추를 선택하여 연결 문자열을 복사합니다.

    Screenshot showing how to view access keys in the Azure portal

두 키 중 하나를 사용하여 Azure Storage에 액세스할 수 있지만 일반적으로 첫 번째 키를 사용하고 키를 회전할 때를 대비해 두 번째 키의 사용을 예약하는 것이 좋습니다.

계정의 액세스 키를 보거나 읽으려면 사용자가 서비스 관리자이거나 Microsoft. Storage/storageAccounts/listkeys/action을 포함하는 Azure 역할을 할당받아야 합니다. 이 작업을 포함하는 일부 Azure 기본 제공 역할은 소유자, Contributor스토리지 계정 키 운영자 서비스 역할입니다. 서비스 관리자 역할에 대한 자세한 내용은 Azure 역할, Microsoft Entra 역할, 클래식 구독 관리자 역할을 참조하세요. Azure Storage의 기본 제공 역할에 대한 자세한 내용은 Azure RBAC에 대한 Azure 기본 제공 역할스토리지 섹션을 참조하세요.

Azure Key Vault를 사용하여 액세스 키 관리

Microsoft는 Azure Key Vault를 사용하여 액세스 키를 관리하고 회전할 것을 권장합니다. 사용자의 애플리케이션이 Key Vault의 키에 안전하게 액세스할 수 있으므로 애플리케이션 코드를 사용하여 키를 저장하지 않아도 됩니다. 키 관리를 위한 Key Vault 사용 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

액세스 키의 수동 회전

Microsoft는 스토리지 계정을 안전하게 유지하기 위해 액세스 키를 정기적으로 회전할 것을 권장합니다. 가급적 Azure Key Vault를 사용하여 액세스 키를 관리합니다. Key Vault를 사용하지 않는 경우 수동으로 키를 회전해야 합니다.

키를 회전할 수 있도록 두 개의 액세스 키가 할당됩니다. 두 개의 키가 있으면 애플리케이션이 프로세스 전체에서 Azure Storage에 대한 액세스 권한을 유지할 수 있습니다.

Warning

액세스 키를 다시 생성하면 스토리지 계정 키에 종속된 모든 애플리케이션과 Azure 서비스에 영향을 미칠 수 있습니다. 계정 키를 사용하여 스토리지 계정에 액세스하는 모든 클라이언트는 미디어 서비스, 클라우드, 데스크톱 및 모바일 애플리케이션, Azure Storage용 그래픽 사용자 인터페이스 애플리케이션(예: Azure Storage Explorer)을 포함하여 새로운 키를 사용하도록 업데이트되어야 합니다.

또한 액세스 키를 회전하거나 다시 생성하면 해당 키를 기반으로 생성된 SAS(공유 액세스 서명)가 취소됩니다. 액세스 키 순환 후 애플리케이션 중단을 방지하려면 계정서비스 SAS 토큰을 다시 생성해야 합니다. 사용자 위임 SAS 토큰은 Microsoft Entra 자격 증명으로 보호되며 키 회전의 영향을 받지 않습니다.

액세스 키를 수동으로 교체하려는 경우 키 만료 정책을 설정하는 것이 좋습니다. 자세한 내용은 키 만료 정책 만들기를 참조하세요.

키 만료 정책을 만든 후 Azure Policy를 사용하여 스토리지 계정의 키가 권장 간격 내에서 순환되었는지 여부를 모니터링할 수 있습니다. 자세한 내용은 키 만료 정책 위반 확인을 참조하세요.

Azure Portal에서 스토리지 계정 액세스 키를 회전하는 방법은 다음과 같습니다.

  1. 스토리지 계정의 보조 액세스 키를 참조하도록 애플리케이션 코드의 연결 문자열을 업데이트합니다.
  2. Azure Portal의 스토리지 계정으로 이동합니다.
  3. 보안 + 네트워킹에서 액세스 키를 선택합니다.
  4. 스토리지 계정에 대한 기본 키를 다시 생성하려면 기본 액세스 키 옆에 있는 다시 생성 단추를 선택합니다.
  5. 새 기본 액세스 키를 참조하도록 코드의 연결 문자열을 업데이트합니다.
  6. 같은 방식으로 보조 액세스 키를 다시 생성합니다.

주의

모든 애플리케이션에서 키 중 하나만 동시에 사용하는 것이 좋습니다. 어떤 경우에는 키 1을 사용하고, 다른 경우에는 키 2를 사용하면 어떤 애플리케이션이 액세스 권한을 상실해야만 키를 순환할 수 있게 됩니다.

계정의 액세스 키를 회전하려면 사용자가 서비스 관리자이거나 Microsoft.Storage/storageAccounts/regeneratekey/action을 포함하는 Azure 역할을 할당받아야 합니다. 이 작업을 포함하는 일부 Azure 기본 제공 역할은 소유자, Contributor스토리지 계정 키 운영자 서비스 역할입니다. 서비스 관리자 역할에 대한 자세한 내용은 Azure 역할, Microsoft Entra 역할, 클래식 구독 관리자 역할을 참조하세요. Azure Storage의 Azure 기본 제공 역할에 대한 자세한 내용은 Azure RBAC에 대한 Azure 기본 제공 역할스토리지 섹션을 참조하세요.

키 만료 정책 생성

키 만료 정책을 사용하면 계정 액세스 키 교체에 대한 미리 알림을 설정할 수 있습니다. 지정된 간격이 경과하고 키가 아직 회전되지 않은 경우 미리 알림이 표시됩니다. 키 만료 정책을 만든 후에는 스토리지 계정의 규정 준수를 모니터링하여 계정 액세스 키가 정기적으로 순환되도록 할 수 있습니다.

참고 항목

키 만료 정책을 만들기 전에 각 계정 액세스 키를 한 번 이상 교체해야 할 수 있습니다.

Azure Portal에서 키 만료 정책을 만들려면:

  1. Azure Portal에서 스토리지 계정으로 이동합니다.
  2. 보안 + 네트워킹에서 액세스 키를 선택합니다. 계정 액세스 키는 물론 각 키의 전체 연결 문자열이 나타납니다.
  3. 순환 미리 알림 설정 단추를 선택합니다. 회전 미리 알림 설정 단추가 회색으로 표시되어 있는 경우 키를 각각 회전해야 합니다. 액세스 키의 수동 회전에서 설명하는 단계에 따라 키를 회전합니다.
  4. 액세스 키 순환 미리 알림 설정에서 키 순환 미리 알림 사용 확인란을 선택하고 미리 알림 빈도를 설정합니다.
  5. 저장을 선택합니다.

Screenshot showing how to create a key expiration policy in the Azure portal

키 만료 정책 위반 확인

Azure Policy로 스토리지 계정을 모니터링하여 계정 액세스 키가 권장 기간 내에 순환되었는지 확인할 수 있습니다. Azure Storage는 스토리지 계정 액세스 키가 만료되지 않도록 하기 위한 기본 제공 정책을 제공합니다. 기본 제공 정책에 대한 자세한 내용은 기본 제공 정책 정의 목록에서 스토리지 계정 키는 만료되지 않아야 함을 참조하세요.

리소스 범위에 대한 기본 제공 정책 할당

Azure Portal의 적절한 범위에 기본 제공 정책을 할당하려면 다음 단계를 따릅니다.

  1. Azure Portal에서 Policy를 검색하여 Azure Policy 대시보드를 표시합니다.

  2. 작성 섹션에서 할당을 선택합니다.

  3. 정책 할당을 선택합니다.

  4. 정책 할당 페이지의 기본 탭에 있는 범위 섹션에서 정책 할당 범위를 지정합니다. 구독 및 선택적 리소스 그룹을 선택하려면 기타 단추를 선택합니다.

  5. 정책 정의 필드에서 기타 단추를 선택하고 검색 필드에 스토리지 계정 키를 입력합니다. 스토리지 계정 키는 만료되지 않아야 함이라는 정책 정의를 선택합니다.

    Screenshot showing how to select the built-in policy to monitor key rotation intervals for your storage accounts

  6. 검토 + 만들기를 선택하여 정책 정의를 지정된 범위에 할당합니다.

    Screenshot showing how to create the policy assignment

키 만료 정책 준수 모니터링

키 만료 정책을 준수하는지 스토리지 계정을 모니터링하려면 다음 단계를 따릅니다.

  1. Azure Policy 대시보드에서 정책 할당에 지정한 범위에 대한 기본 제공 정책 정의를 찾습니다. 검색 상자에서 스토리지 계정 키가 만료되지 않아야 함을 검색하여 기본 제공 정책을 필터링할 수 있습니다.

  2. 원하는 범위의 정책 이름을 선택합니다.

  3. 기본 제공 정책의 정책 할당 페이지에서 규정 준수 보기를 선택합니다. 정책 요구 사항을 충족하지 않는 지정된 구독 및 리소스 그룹의 모든 스토리지 계정은 규정 준수 보고서에 나타납니다.

    Screenshot showing how to view the compliance report for the key expiration built-in policy

스토리지 계정을 준수하도록 하려면 계정 액세스 키를 교체합니다.

다음 단계