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
- Rejestr kontenerów w warstwie 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 podczas pierwszego użycia. 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, publiczny dostęp do rejestru musi być również wyłączony (właściwość rejestru musi być ustawiona
publicNetworkAccess
nadisabled
wartość ). 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
nadisabled
, 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 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
wartość .
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