Udostępnij przez


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.

Polityka eksportu to właściwość wprowadzona dla rejestrów kontenerów Premium w interfejsie API w wersji 2021-06-01-preview. 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
  • Utwórz potok eksportu do 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

  • Rejestr kontenerów premium skonfigurowany z prywatnym punktem końcowym.

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

  • Wyłącz dostęp sieci publicznej — aby wyłączyć eksportowanie artefaktów, publiczny dostęp do rejestru musi być również wyłączony (właściwość rejestru publicNetworkAccess musi być ustawiona na disabled). Możesz wyłączyć dostęp do sieci publicznej do rejestru przed wyłączeniem eksportu lub zrobić to jednocześnie.

    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ń rurociągi eksportu — przed ustawieniem stanu rejestru exportPolicy na disabled, usuń wszystkie skonfigurowane w rejestrze istniejące rurociągi eksportu. Jeśli kanał jest skonfigurowany, nie można zmienić exportPolicy stanu.

Wyłączanie zasad eksportu dla istniejącego rejestru

Podczas tworzenia rejestru stan exportPolicy jest domyślnie ustawiony na enabled, co umożliwia eksportowanie artefaktów. Stan można zaktualizować z użyciem szablonu ARM lub polecenia az resource update.

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 pomocy szablonów ARM.

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

Azure CLI

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

Jak pokazano w tym przykładzie, przy wyłączaniu właściwości exportPolicy, ustaw też właściwość publicNetworkAccess na wartość 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"  

Wynik pokazuje, że status polityki 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łącz exportPolicy

Po wyłączeniu stanu exportPolicy w rejestrze, można go ponownie włączyć w dowolnym momencie, używając szablonu ARM lub polecenia az resource update.

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