Udostępnij za pośrednictwem


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 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 działania:

  • 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 eksportowania artefaktów nie uniemożliwia autoryzowanym użytkownikom dostępu 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, publiczny dostęp do rejestru musi być również wyłączony (właściwość rejestru musi być ustawiona publicNetworkAccess na disabledwartość ). Przed wyłączeniem eksportu lub wyłączenia go w tym samym czasie można wyłączyć dostęp do sieci publicznej do rejestru.

    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 zasad eksportu dla istniejącego rejestru

Podczas tworzenia rejestru exportPolicy stan jest domyślnie ustawiony na enabled wartość , co umożliwia eksportowanie artefaktów. Stan można zaktualizować przy disabled użyciu 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 disabledwartość .

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 zasad eksportu

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

  • Dowiedz się więcej o rolach i uprawnieniach usługi Azure Container Registry.
  • Jeśli chcesz zapobiec przypadkowemu usunięciu artefaktów rejestru, zobacz Blokowanie obrazów kontenerów.
  • Dowiedz się więcej o wbudowanych zasadach platformy Azure w celu zabezpieczenia rejestru kontenerów platformy Azure