Rozwiązywanie problemów z wdrażaniem zasad platformy Azure w Key Vault
W tym artykule opisano sposób rozwiązywania ogólnych błędów, które mogą wystąpić podczas konfigurowania Azure Policy dla Key Vault i sugeruje sposoby ich rozwiązania.
Informacje o zasadach platformy Azure dla Key Vault
Azure Policy to narzędzie do zapewniania ładu, które umożliwia użytkownikom przeprowadzanie inspekcji środowiska platformy Azure i zarządzanie nim na dużą skalę. Azure Policy umożliwia umieszczenie barier ochronnych w zasobach platformy Azure w celu zapewnienia ich zgodności z przypisanymi regułami zasad. Umożliwia użytkownikom przeprowadzanie inspekcji, wymuszanie w czasie rzeczywistym i korygowanie środowiska platformy Azure. Wyniki inspekcji wykonywanych przez zasady będą dostępne dla użytkowników na pulpicie nawigacyjnym zgodności, w którym będą mogli zobaczyć przechodzenie do szczegółów, które zasoby i składniki są zgodne, a które nie.
Rejestrowanie
Aby monitorować sposób przeprowadzania ocen zasad, możesz przejrzeć dzienniki Key Vault. Włączanie rejestrowania dla usługi Azure Key Vault, która zapisuje informacje na podanym koncie usługi Azure Storage. Aby uzyskać wskazówki krok po kroku, zobacz Jak włączyć rejestrowanie Key Vault.
Po włączeniu rejestrowania zostanie automatycznie utworzony nowy kontener o nazwie AzurePolicyEvaluationDetails w celu zbierania informacji dotyczących rejestrowania powiązanych z zasadami na określonym koncie magazynu.
Uwaga
Należy ściśle regulować dostęp do danych monitorowania, szczególnie plików dziennika, ponieważ mogą zawierać poufne informacje. Dowiedz się więcej na temat stosowania wbudowanej roli platformy Azure i ograniczania dostępu.
Poszczególne obiekty blob są przechowywane jako tekst w formacie obiektu blob JSON.
Przyjrzyjmy się przykładowe wpisowi dziennika dla zasad klucz: Klucze powinny mieć ustawioną datę wygaśnięcia. Te zasady oceniają wszystkie klucze w magazynach kluczy i flagi kluczy, które nie mają ustawionej daty wygaśnięcia jako niezgodne.
{
"ObjectName": "example",
"ObjectType": "Key",
"IsComplianceCheck": false,
"EvaluationDetails": [
{
"AssignmentId": "<subscription ID>",
"AssignmentDisplayName": "[Preview]: Key Vault keys should have an expiration date",
"DefinitionId": "<definition ID>",
"DefinitionDisplayName": "[Preview]: Key Vault keys should have an expiration date",
"Outcome": "NonCompliant",
"ExpressionEvaluationDetails": [
{
"Result": "True",
"Expression": "type",
"ExpressionKind": "Field",
"ExpressionValue": "Microsoft.KeyVault.Data/vaults/keys",
"TargetValue": "Microsoft.KeyVault.Data/vaults/keys",
"Operator": "Equals"
},
{
"Result": "True",
"Expression": "Microsoft.KeyVault.Data/vaults/keys/attributes.expiresOn",
"ExpressionKind": "Field",
"ExpressionValue": "******",
"TargetValue": "False",
"Operator": "Exists"
}
]
}
]
}
W poniższej tabeli wymieniono nazwy pól i opisy:
Nazwa pola | Opis |
---|---|
ObjectName | Nazwa obiektu |
ObjectType | Typ obiektu magazynu kluczy: certyfikat, wpis tajny lub klucz |
IsComplianceCheck | Prawda, jeśli ocena miała miejsce podczas nocnego przeprowadzania inspekcji, wartość false, jeśli wystąpiła ocena podczas tworzenia lub aktualizowania zasobów |
Assignmentid | Identyfikator przypisania zasad |
AssignmentDisplayName | Przyjazna nazwa przypisania zasad |
Identyfikator definicji | Identyfikator definicji zasad dla przypisania |
DefinitionDisplayName | Przyjazna nazwa definicji zasad przypisania |
Wynik | Wynik oceny zasad |
ExpressionEvaluationDetails | Szczegółowe informacje o ocenach wykonywanych podczas oceny zasad |
ExpressionValue | Rzeczywista wartość określonego pola podczas oceny zasad |
TargetValue | Oczekiwana wartość określonego pola |
Często zadawane pytania
Key Vault odzyskiwanie zablokowane przez zasady platformy Azure
Jedną z przyczyn może być to, że Subskrypcja (lub grupa zarządzania) ma zasady blokujące odzyskiwanie. Poprawka polega na dostosowaniu zasad tak, aby nie były stosowane podczas odzyskiwania magazynu.
Jeśli widzisz typ RequestDisallowedByPolicy
błędu odzyskiwania z powodu wbudowanych zasad, upewnij się, że używasz najbardziej zaktualizowanej wersji.
Jeśli utworzono niestandardowe zasady z własną logiką, oto przykładowa część zasad, która może służyć do wymagania usuwania nietrwałego. Odzyskiwanie magazynu usuniętego nietrwale używa tego samego interfejsu API co tworzenie lub aktualizowanie magazynu. Jednak zamiast określać właściwości magazynu, ma pojedynczą właściwość "createMode" z wartością "recover". Magazyn zostanie przywrócony z właściwościami, które miały miejsce po usunięciu. Zasady, które blokują żądania, chyba że mają skonfigurowane określone właściwości, również zablokują odzyskiwanie nietrwałych magazynów usuniętych. Poprawka polega na dołączeniu klauzuli, która spowoduje ignorowanie żądań, w których element "createMode" to "recover":
Zobaczysz, że zawiera ona klauzulę, która powoduje zastosowanie zasad tylko wtedy, gdy wartość "createMode" nie jest równa "recover":
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.KeyVault/vaults"
},
{
"not": {
"field": "Microsoft.Keyvault/vaults/createMode",
"equals": "recover"
}
},
{
"anyOf": [
{
"field": "Microsoft.KeyVault/vaults/enableSoftDelete",
"exists": "false"
},
{
"field": "Microsoft.KeyVault/vaults/enableSoftDelete",
"equals": "false"
}
]
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
Opóźnienie usuwania przypisania zasad platformy Azure w Key Vault
Microsoft.KeyVault.Data: wymuszanie usuniętego przypisania zasad może potrwać do 24 godzin.
Ograniczenie ryzyka: zaktualizuj efekt przypisania zasad na wartość "Wyłączone".
Tworzenie wpisu tajnego za pośrednictwem szablonu usługi ARM nie ma oceny zasad
Zasady płaszczyzny danych, które oceniają tworzenie wpisów tajnych, nie będą stosowane wpisów tajnych utworzonych za pośrednictwem szablonu usługi ARM w momencie tworzenia wpisu tajnego. Po upływie 24 godzin, kiedy nastąpi automatyczna kontrola zgodności, a wyniki zgodności można przejrzeć.
Następne kroki
- Dowiedz się, jak rozwiązywać problemy z błędami przy użyciu Azure Policy
- Dowiedz się więcej o Azure Policy znanych problemach