Wyłączanie eksportowania artefaktów z rejestru kontenerów platformy Azure

Aby uniemożliwić użytkownikom rejestru w organizacji złośliwe lub przypadkowe wycieki artefaktów poza siecią wirtualną, można skonfigurować zasady eksportu rejestru w celu wyłączenia eksportów.

Zasady eksportu to właściwość wprowadzona w interfejsie API w wersji 2021-06-01-preview dla rejestrów kontenerów w warstwie Premium. Właściwość exportPolicy , gdy jej stan jest ustawiony na disabled, blokuje eksportowanie artefaktów z rejestru z ograniczeniami sieci, gdy użytkownik próbuje wykonać następujące próby:

  • Importowanie artefaktów rejestru do innego rejestru kontenerów platformy Azure
  • Tworzenie potoku eksportu rejestru w celu transferu artefaktów do innego rejestru kontenerów

Uwaga

Wyłączenie eksportu artefaktów nie uniemożliwia autoryzowanego dostępu użytkowników do rejestru w sieci wirtualnej w celu ściągania artefaktów ani wykonywania innych operacji płaszczyzny danych. Aby przeprowadzić inspekcję tego użycia, zalecamy skonfigurowanie ustawień diagnostycznych w celu monitorowania operacji rejestru.

Wymagania wstępne

Inne wymagania dotyczące wyłączania eksportów

  • Wyłącz dostęp do sieci publicznej — aby wyłączyć eksportowanie artefaktów, należy również wyłączyć dostęp publiczny do rejestru (właściwość rejestru musi być ustawiona publicNetworkAccess na disabledwartość ). Możesz wyłączyć dostęp do sieci publicznej do rejestru przed wyłączeniem eksportu lub wyłączeniem go w tym samym czasie.

    Wyłączając dostęp do publicznego punktu końcowego rejestru, upewnij się, że operacje rejestru są dozwolone tylko w sieci wirtualnej. Publiczny dostęp do rejestru w celu ściągania artefaktów i wykonywania innych operacji jest zabroniony.

  • Usuń potoki eksportu — przed ustawieniem stanu rejestru exportPolicy na disabled, usuń wszystkie istniejące potoki eksportu skonfigurowane w rejestrze. Jeśli potok jest skonfigurowany, nie można zmienić exportPolicy stanu.

Wyłączanie funkcji exportPolicy dla istniejącego rejestru

Podczas tworzenia rejestru exportPolicy stan jest domyślnie ustawiony enabled na wartość , co umożliwia eksportowanie artefaktów. Stan można zaktualizować tak, aby disabled używał szablonu usługi ARM lub az resource update polecenia .

Szablon ARM

Dołącz następujący kod JSON, aby zaktualizować exportPolicy stan i ustawić publicNetworkAccess właściwość na disabled. Dowiedz się więcej o wdrażaniu zasobów przy użyciu szablonów usługi ARM.

{
[...]
"resources": [
    {
    "type": "Microsoft.ContainerRegistry/registries",
    "apiVersion": "2021-06-01-preview",
    "name": "myregistry",
    [...]
    "properties": {
      "publicNetworkAccess": "disabled",
      "policies": {
        "exportPolicy": {
          "status": "disabled"
         }
      }
      }
    }
]
[...]
}

Interfejs wiersza polecenia platformy Azure

Uruchom polecenie az resource update , aby ustawić exportPolicy stan w istniejącym rejestrze na disabledwartość . Zastąp nazwy rejestru i grupy zasobów.

Jak pokazano w tym przykładzie, podczas wyłączania exportPolicy właściwości ustaw publicNetworkAccess również właściwość na disabled.

az resource update --resource-group myResourceGroup \
    --name myregistry \
    --resource-type "Microsoft.ContainerRegistry/registries" \
    --api-version "2021-06-01-preview" \
    --set "properties.policies.exportPolicy.status=disabled" \
    --set "properties.publicNetworkAccess=disabled"  

Dane wyjściowe pokazują, że stan zasad eksportu jest wyłączony.

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry",
  "identity": null,
  "kind": null,
  "location": "centralus",
  "managedBy": null,
  "name": "myregistry",
  "plan": null,
  "properties": {
    [...]
    "policies": {
      "exportPolicy": {
        "status": "disabled"
      },
      "quarantinePolicy": {
        "status": "disabled"
      },
      "retentionPolicy": {
        "days": 7,
        "lastUpdatedTime": "2021-07-20T23:20:30.9985256+00:00",
        "status": "disabled"
      },
      "trustPolicy": {
        "status": "disabled",
        "type": "Notary"
      },
    "privateEndpointConnections": [],
    "provisioningState": "Succeeded",
    "publicNetworkAccess": "Disabled",
    "zoneRedundancy": "Disabled"
[...]
}

Włączanie eksportuPolicy

Po wyłączeniu exportPolicy stanu w rejestrze można ją ponownie włączyć w dowolnym momencie przy użyciu szablonu usługi ARM lub az resource update polecenia .

Szablon ARM

Dołącz następujący kod JSON, aby zaktualizować exportPolicy stan do enabled. Dowiedz się więcej o wdrażaniu zasobów przy użyciu szablonów usługi ARM

{
[...]
"resources": [
    {
    "type": "Microsoft.ContainerRegistry/registries",
    "apiVersion": "2021-06-01-preview",
    "name": "myregistry",
    [...]
    "properties": {
     "policies": {
        "exportPolicy": {
          "status": "enabled"
         }
      }
      }
    }
]
[...]
}

Interfejs wiersza polecenia platformy Azure

Uruchom polecenie az resource update , aby ustawić exportPolicy stan na enabled. Zastąp nazwy rejestru i grupy zasobów.

az resource update --resource-group myResourceGroup \
    --name myregistry \
    --resource-type "Microsoft.ContainerRegistry/registries" \
    --api-version "2021-06-01-preview" \
    --set "properties.policies.exportPolicy.status=enabled"

Następne kroki