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
- Rejestr kontenerów Premium skonfigurowany z prywatnym punktem końcowym.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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
nadisabled
wartość ). 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
nadisabled
, 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 disabled
wartość . 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
- Dowiedz się więcej o rolach i uprawnieniach 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