Microsoft Entra 테넌트 간 개체 복제 방지

개체 복제는 한 스토리지 계정의 컨테이너에서 다른 스토리지 계정의 컨테이너로 블록 Blob을 비동기식으로 복사합니다. 개체 복제 정책을 구성할 때 원본 계정과 컨테이너, 대상 계정과 컨테이너를 지정합니다. 정책이 구성되면 Azure Storage는 원본 개체에 대한 만들기, 업데이트 및 삭제 작업의 결과를 대상 개체에 자동으로 복사합니다. Azure Storage의 개체 복제에 대한 자세한 내용은 블록 Blob의 개체 복제를 참조하세요.

권한 있는 사용자는 Microsoft Entra 테넌트 간에 교차 테넌트 복제가 허용되는 경우 원본 계정이 하나의 Microsoft Entra 테넌트에 있고 대상 계정이 다른 테넌트에 있는 개체 복제 정책을 구성할 수 있습니다. 보안 정책에서 동일한 테넌트 내에 있는 스토리지 계정으로만 개체 복제를 제한해야 하는 경우 원본 및 대상 계정이 다른 테넌트에 있는 정책 만들기를 허용하지 않을 수 있습니다. 기본적으로 테넌트 간 개체 복제는 명시적으로 허용하지 않는 한 2023년 12월 15일 이후에 만든 모든 새 스토리지 계정에 대해 사용하지 않도록 설정됩니다.

이 문서에서는 스토리지 계정에 대한 테넌트 간 개체 복제를 수정하는 방법을 설명합니다. 또한 새 스토리지 계정과 기존 스토리지 계정에 대해 테넌트 간 개체 복제를 금지하는 정책을 만드는 방법도 설명합니다.

테넌트 간 정책을 포함하여 개체 복제 정책을 구성하는 방법에 대한 자세한 내용은 블록 Blob에 대한 개체 복제 구성을 참조하세요.

테넌트 간 개체 복제 수정

Microsoft Entra 테넌트 간의 개체 복제를 방지하려면 스토리지 계정의 AllowCrossTenantReplication 속성을 false로 설정합니다. 스토리지 계정이 현재 테넌트 간 개체 복제 정책에 참여하지 않는 경우 AllowCrossTenantReplication 속성을 false로 설정하면 이 스토리지 계정을 원본 또는 대상으로 사용하는 테넌트 간 개체 복제 정책의 향후 구성을 방지할 수 있습니다. 그러나 스토리지 계정이 현재 하나 이상의 테넌트 간 개체 복제 정책에 참여하는 경우 기존 테넌트 간 정책을 삭제할 때까지 AllowCrossTenantReplication 속성을 false로 설정할 수 없습니다.

2023년 12월 15일 이후에 만든 스토리지 계정에는 기본적으로 테넌트 간 정책이 허용됩니다. 그러나 AllowCrossTenantReplication 속성은 기본적으로 2023년 12월 15일 이전에 만든 기존 스토리지 계정에 대해 설정되지 않으며 명시적으로 설정할 때까지 값을 반환하지 않습니다. 2023년 12월 15일 이전에 만든 계정에 대해 속성 값이 null 또는 true인 경우 스토리지 계정은 테넌트 간의 개체 복제 정책에 참여할 수 있습니다. 해당 시간 이후에 만든 계정의 경우 속성을 true로 설정해야 합니다. AllowCrossTenantReplication 속성을 설정해도 스토리지 계정에 가동 중지 시간이 발생하지 않습니다.

새 계정에 대한 테넌트 간 복제 수정

새 스토리지 계정에 대한 테넌트 간 복제를 허용하지 않으려면 Azure Portal, PowerShell 또는 Azure CLI를 사용합니다. 이 속성은 명시적으로 설정되지 않은 경우에도 2023년 12월 15일 이후에 만든 새 계정에 대해 false로 설정됩니다.

스토리지 계정에 대한 테넌트 간 개체 복제를 허용하지 않으려면 다음 단계를 따르세요.

  1. Azure Portal에서 스토리지 계정 페이지로 이동하고 만들기를 선택합니다.

  2. 새 스토리지 계정의 기본 탭을 작성합니다.

  3. 고급 탭의 Blob Storage 섹션에서 테넌트 간 복제 허용 설정을 찾아 확인란을 선택 해제합니다.

    Screenshot showing how to disallow cross-tenant object replication for a new storage account

  4. 계정 만들기 프로세스를 완료합니다.

기존 계정에 대한 테넌트 간 복제 수정

기존 스토리지 계정에 대한 테넌트 간 복제를 허용하지 않으려면 Azure Portal, PowerShell 또는 Azure CLI를 사용합니다.

현재 테넌트 간 정책에 참여하지 않는 기존 스토리지 계정에 대한 테넌트 간 개체 복제를 허용하지 않으려면 다음 단계를 따르세요.

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

  2. 데이터 관리에서 개체 복제를 선택합니다.

  3. 고급 설정을 선택합니다.

  4. 테넌트 간 복제 허용을 선택 취소합니다. 명시적으로 허용하지 않는 한 스토리지 계정에 대해 테넌트 간 개체 복제가 허용되기 때문에 기본적으로 이 확인란이 선택되어 있습니다.

    Screenshot showing how to disallow cross-tenant object replication for an existing storage account

  5. 확인 을 선택하여 변경 내용을 저장합니다.

스토리지 계정이 현재 하나 이상의 테넌트 간 복제 정책에 참여하고 있는 경우 해당 정책을 삭제할 때까지 테넌트 간 개체 복제를 허용하지 않을 수 있습니다. 이 시나리오에서는 다음 이미지와 같이 Azure Portal에서 설정을 사용할 수 없습니다.

Screenshot

테넌트 간 복제를 허용하지 않고 스토리지 계정을 원본 또는 대상으로 사용하여 테넌트 간 정책을 구성하려고 하면 실패합니다. Azure Storage는 스토리지 계정에 대해 테넌트 간 개체 복제가 허용되지 않음을 나타내는 오류를 반환합니다.

스토리지 계정에 대해 테넌트 간 개체 복제가 허용되지 않는 경우 해당 계정으로 만드는 모든 새 개체 복제 정책에는 원본 및 대상 계정에 대한 전체 Azure Resource Manager ID가 포함되어야 합니다. Azure Storage에는 원본 및 대상 계정이 동일한 테넌트 내에 있는지 여부를 확인하기 위해 전체 리소스 ID가 필요합니다. 자세한 내용은 원본 및 대상 계정의 전체 리소스 ID 지정을 참조하세요.

AllowCrossTenantReplication 속성은 Azure Resource Manager 배포 모델을 사용하는 스토리지 계정에 대해서만 지원됩니다. 어떤 스토리지 계정이 Azure Resource Manager 배포 모델을 사용하는지에 대한 자세한 내용은 스토리지 계정 유형을 참조하세요.

테넌트 간 복제를 허용하거나 허용하지 않는 권한

스토리지 계정에 대한 AllowCrossTenantReplication 속성을 설정하려면 사용자에게 스토리지 계정을 만들고 관리할 수 있는 권한이 있어야 합니다. 이러한 권한을 제공하는 Azure RBAC(Azure 역할 기반 액세스 제어) 역할에는 Microsoft.Storage/storageAccounts/write 또는 Microsoft.Storage/storageAccounts/* 작업이 포함됩니다. 이 작업이 포함된 기본 제공 역할은 다음과 같습니다.

이러한 역할은 Microsoft Entra ID를 통해 스토리지 계정의 데이터에 대한 액세스 권한을 제공하지 않습니다. 그러나 계정 액세스 키에 대한 액세스 권한을 부여하는 Microsoft.Storage/storageAccounts/listkeys/action이 포함되어 있습니다. 이 권한이 있는 사용자는 계정 액세스 키를 사용하여 스토리지 계정의 모든 데이터에 액세스할 수 있습니다.

역할 할당은 사용자가 스토리지 계정에 대한 테넌트 간 개체 복제를 허용하거나 허용하지 않도록 하려면 스토리지 계정 수준 이상으로 범위를 지정해야 합니다. 역할 범위에 대한 자세한 내용은 Azure RBAC의 범위 이해를 참조하세요.

이러한 역할은 스토리지 계정을 만들거나 해당 속성을 업데이트하는 기능이 필요한 사용자에게만 제한적으로 할당해야 합니다. 최소 권한의 원칙을 사용하여 사용자에게 작업을 수행하는 데 필요한 최소 권한을 부여합니다. Azure RBAC를 사용하여 액세스를 관리하는 방법에 대한 자세한 내용은 Azure RBAC 모범 사례를 참조하세요.

참고 항목

클래식 구독 관리자 역할인 서비스 관리자 및 공동 관리자에는 Azure Resource Manager 소유자 역할에 해당하는 항목이 포함됩니다. 소유자 역할은 모든 작업을 포함하므로 이러한 관리 역할 중 하나가 있는 사용자는 스토리지 계정을 만들고 관리할 수도 있습니다. 자세한 내용은 Azure 역할, Microsoft Entra 역할 및 클래식 구독 관리자 역할을 참조하세요.

Azure Policy를 사용하여 규정 준수 감사

많은 수의 스토리지 계정이 있는 경우 감사를 수행하여 해당 계정이 테넌트 간 개체 복제를 방지하도록 구성되었는지 확인할 수 있습니다. 일련의 스토리지 계정에서 규정 준수 여부를 감사하려면 Azure Policy를 사용합니다. Azure Policy는 Azure 리소스에 규칙을 적용하는 정책을 만들고, 할당하고, 관리하는 데 사용할 수 있는 서비스입니다. Azure Policy는 해당 리소스 가 회사 표준 및 서비스 수준 계약을 준수하도록 유지하는 데 도움이 됩니다. 자세한 내용은 Azure Policy 개요를 참조하세요.

감사 효과를 사용하여 정책 만들기

Azure Policy는 리소스에 대해 정책 규칙을 평가할 때 발생하는 작업을 결정하는 효과를 지원합니다. 감사 효과는 리소스가 정책을 준수하지 않는 경우 경고를 생성하지만 요청을 중지하지는 않습니다. 효과에 대한 자세한 내용은 Azure Policy 효과 이해를 참조하세요.

Azure Portal을 사용하여 스토리지 계정의 테넌트 간 개체 복제 설정에 대한 감사 효과가 있는 정책을 만들려면 다음 단계를 따르세요.

  1. Azure Portal에서 Azure Policy 서비스로 이동합니다.

  2. 작성 섹션에서 정의를 선택합니다.

  3. 정책 정의 추가를 선택하여 새 정책 정의를 만듭니다.

  4. 정의 위치 필드의 경우 자세히 단추를 선택하여 감사 정책 리소스가 있는 위치를 지정합니다.

  5. 정책에 대한 이름을 지정합니다. 필요에 따라 설명 및 범주를 지정할 수 있습니다.

  6. 정책 규칙에서 다음 정책 정의를 policyRule 섹션에 추가합니다.

    {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "not": {
              "field":"Microsoft.Storage/storageAccounts/allowCrossTenantReplication",
              "equals": "false"
            }
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
    
  7. 정책을 저장합니다.

정책 할당

다음으로 리소스에 정책을 할당합니다. 정책의 범위는 해당 리소스 및 그 아래에 있는 모든 리소스에 해당합니다. 정책 할당에 대한 자세한 내용은 Azure Policy 할당 구조를 참조하세요.

Azure Portal에서 정책을 할당하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 Azure Policy 서비스로 이동합니다.
  2. 작성 섹션에서 할당을 선택합니다.
  3. 정책 할당을 선택하여 새 정책 할당을 만듭니다.
  4. 범위 필드에서 정책 할당의 범위를 선택합니다.
  5. 정책 정의 필드에서 자세히 단추를 선택한 다음, 이전 섹션에서 정의한 정책을 목록에서 선택합니다.
  6. 정책 할당의 이름을 제공합니다. 설명은 생략할 수 있습니다.
  7. 정책 적용사용 가능으로 유지합니다. 이 설정은 감사 정책에 영향을 주지 않습니다.
  8. 검토 + 만들기를 선택하여 할당을 만듭니다.

규정 준수 보고서 보기

정책을 할당한 후에는 규정 준수 보고서를 볼 수 있습니다. 감사 정책에 대한 규정 준수 보고서는 테넌트 간 개체 복제 정책을 여전히 허용하는 스토리지 계정에 대한 정보를 제공합니다. 자세한 내용은 정책 규정 준수 데이터 가져오기를 참조하세요.

정책 할당을 만든 후 규정 준수 보고서를 사용할 수 있게 되는 데 몇 분 정도 걸릴 수 있습니다.

Azure Portal에서 규정 준수 보고서를 보려면 다음 단계를 수행합니다.

  1. Azure Portal에서 Azure Policy 서비스로 이동합니다.

  2. 준수를 선택합니다.

  3. 이전 단계에서 만든 정책 할당의 이름에 대한 결과를 필터링합니다. 보고서는 정책을 준수하지 않는 리소스를 보여 줍니다.

  4. 정책을 준수하지 않는 스토리지 계정 목록을 포함하여 추가 세부 정보에 대해 보고서를 드릴다운할 수 있습니다.

    Screenshot showing compliance report for audit policy for blob cross-tenant object replication

Azure Policy를 사용하여 동일 테넌트 복제 정책 적용

Azure Policy는 Azure 리소스가 요구 사항 및 표준을 준수하도록 하여 클라우드 거버넌스를 지원합니다. 조직의 스토리지 계정이 테넌트 간 복제를 허용하지 않도록 하려면 테넌트 간 개체 복제 정책을 허용하는 새 스토리지 계정 만들기를 방지하는 정책을 만들 수 있습니다. 적용 정책은 거부 효과를 사용하여 테넌트 간 개체 복제를 허용하기 위해 스토리지 계정을 만들거나 수정하는 요청을 방지합니다. 또한 거부 정책은 해당 계정에 대한 테넌트 간 개체 복제 설정이 정책을 준수하지 않는 경우 기존 계정에 대한 모든 구성 변경을 방지합니다. 거부 효과에 대한 자세한 내용은 Azure Policy 효과 이해를 참조하세요.

테넌트 간 개체 복제에 대한 거부 효과가 있는 정책을 만들려면 Azure Policy를 사용하여 규정 준수 감사에 설명된 것과 동일한 단계를 따르되 정책 정의의 policyRule 섹션에 다음 JSON을 제공합니다.

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Storage/storageAccounts"
      },
      {
        "not": {
          "field":"Microsoft.Storage/storageAccounts/allowCrossTenantReplication",
          "equals": "false"
        }
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

거부 효과가 있는 정책을 만들고 범위에 할당하면 사용자가 테넌트 간 개체 복제를 허용하는 스토리지 계정을 만들 수 없습니다. 또한 사용자는 현재 테넌트 간 개체 복제를 허용하는 기존 스토리지 계정에 대한 구성을 변경할 수 없습니다. 그렇게 하려고 하면 오류가 발생합니다. 정책에 따라 계정 만들기 또는 구성 업데이트를 진행하려면 스토리지 계정의 AllowCrossTenantReplication 속성을 false로 설정해야 합니다.

다음 이미지는 거부 효과가 있는 정책에서 테넌트 간 개체 복제가 허용되지 않도록 요구할 때 테넌트 간 개체 복제(새 계정의 기본값)를 허용하는 스토리지 계정을 만들려고 하는 경우 발생하는 오류를 보여 줍니다.

Screenshot showing the error that occurs when creating a storage account in violation of policy

참고 항목