Udostępnij za pośrednictwem


Struktura wykluczania usługi Azure Policy

Funkcja wykluczeń usługi Azure Policy służy do wykluczania hierarchii zasobów lub pojedynczego zasobu z oceny inicjatyw lub definicji. Zasoby, które są wykluczone, są uwzględniane w stosunku do ogólnej zgodności, ale nie można ich ocenić ani nie mają tymczasowego zwolnienia. Aby uzyskać więcej informacji, zobacz Omówienie stosowania w usłudze Azure Policy. Wykluczenia usługi Azure Policy działają również z następującymi trybami usługi Resource Manager: Microsoft.Kubernetes.Data, Microsoft.KeyVault.Datai Microsoft.Network.Data.

Aby utworzyć wykluczenie z zasad, należy użyć języka JavaScript Object Notation (JSON). Wykluczenie z zasad zawiera następujące elementy:

Wykluczenie z zasad jest tworzone jako obiekt podrzędny w hierarchii zasobów lub pojedynczy zasób, któremu udzielono wykluczenia. Nie można utworzyć wykluczeń na poziomie składnika trybu dostawcy zasobów. Jeśli zasób nadrzędny, do którego zastosowano wykluczenie, zostanie usunięty, wykluczenie również zostanie usunięte.

Na przykład poniższy kod JSON przedstawia wykluczenie z zasad w kategorii zwolnienia zasobu do przypisania inicjatywy o nazwie resourceShouldBeCompliantInit. Zasób jest wykluczony tylko z dwóch definicji zasad w inicjatywie, customOrgPolicy niestandardowej definicji zasad ( policyDefinitionReferenceId: requiredTags) i dozwolone lokalizacje wbudowanej definicji zasad ( policyDefinitionReferenceId : allowedLocations):

{
  "id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
  "apiVersion": "2020-07-01-preview",
  "name": "resourceIsNotApplicable",
  "type": "Microsoft.Authorization/policyExemptions",
  "properties": {
    "displayName": "This resource is scheduled for deletion",
    "description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
    "metadata": {
      "requestedBy": "Storage team",
      "approvedBy": "IA",
      "approvedOn": "2020-07-26T08:02:32.0000000Z",
      "ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
    },
    "policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
    "policyDefinitionReferenceId": [
      "requiredTags",
      "allowedLocations"
    ],
    "exemptionCategory": "waiver",
    "expiresOn": "2020-12-31T23:59:00.0000000Z",
    "assignmentScopeValidation": "Default"
  }
}

Nazwa wyświetlana i opis

Należy użyć displayName polecenia i description zidentyfikować wykluczenie z zasad i podać kontekst do użycia z określonym zasobem. displayName ma maksymalną długość 128 znaków i description maksymalną długość 512 znaków.

Metadane

Właściwość metadata umożliwia utworzenie dowolnej właściwości podrzędnej wymaganej do przechowywania odpowiednich informacji. W tym przykładzie właściwości requestedBy, approvedBy, approvedOni ticketRef zawierają wartości klientów w celu dostarczenia informacji o tym, kto zażądał wykluczenia, kto go zatwierdził i kiedy oraz wewnętrzny bilet śledzenia dla żądania. Te metadata właściwości są przykładami, ale nie są wymagane i metadata nie są ograniczone do tych właściwości podrzędnych.

Identyfikator przypisania zasad

To pole musi zawierać nazwę pełnej ścieżki przypisania zasad lub przypisania inicjatywy. Jest policyAssignmentId to ciąg, a nie tablica. Ta właściwość określa, z którego przydziału jest wyłączona hierarchia zasobów nadrzędnych lub pojedynczy zasób.

Identyfikatory definicji zasad

Jeśli element policyAssignmentId jest przeznaczony do przypisania inicjatywy, policyDefinitionReferenceId właściwość może służyć do określenia definicji zasad w inicjatywie, do której zasobu podmiot ma wykluczenie. Ponieważ zasób może być wykluczony z co najmniej jednej dołączonej definicji zasad, ta właściwość jest tablicą. Wartości muszą być zgodne z wartościami w definicji inicjatywy w polach policyDefinitions.policyDefinitionReferenceId .

Kategoria wykluczenia

Istnieją dwie kategorie wykluczenia i są one używane do grupowania wykluczeń:

  • Złagodzone: wykluczenie zostało udzielone, ponieważ cel zasad został spełniony za pośrednictwem innej metody.
  • Zwolnienie: Zwolnienie jest przyznawane, ponieważ stan braku zgodności zasobu jest tymczasowo akceptowany. Innym powodem użycia tej kategorii jest wykluczenie hierarchii zasobów lub zasobów z jednej lub kilku definicji w ramach inicjatywy, ale nie powinno być wykluczone z całej inicjatywy.

Wygaśnięcie

Aby ustawić, gdy hierarchia zasobów lub pojedynczy zasób nie jest już wykluczony z przypisania, ustaw expiresOn właściwość . Ta opcjonalna właściwość musi być w formacie yyyy-MM-ddTHH:mm:ss.fffffffZUniversal ISO 8601 DateTime .

Uwaga

Wykluczenia z zasad nie są usuwane po expiresOn osiągnięciu daty. Obiekt jest zachowywany do przechowywania rekordów, ale wykluczenie nie jest już honorowane.

Selektory zasobów

Wykluczenia obsługują opcjonalną właściwość resourceSelectors , która działa tak samo jak w przypadku wykluczeń, co w przypadku przypisań. Właściwość umożliwia stopniowe wdrażanie lub wycofywanie wykluczenia do niektórych podzestawów zasobów w kontrolowany sposób na podstawie typu zasobu, lokalizacji zasobu lub tego, czy zasób ma lokalizację. Więcej szczegółów na temat używania selektorów zasobów można znaleźć w strukturze przypisania. Poniższy kod JSON to przykładowe wykluczenie korzystające z selektorów zasobów. W tym przykładzie tylko zasoby w programie westcentralus są wykluczone z przypisania zasad:

{
  "properties": {
    "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
    "policyDefinitionReferenceId": [
      "limitSku",
      "limitType"
    ],
    "exemptionCategory": "Waiver",
    "resourceSelectors": [
      {
        "name": "TemporaryMitigation",
        "selectors": [
          {
            "kind": "resourceLocation",
            "in": [
              "westcentralus"
            ]
          }
        ]
      }
    ]
  },
  "systemData": { ...
  },
  "id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
  "type": "Microsoft.Authorization/policyExemptions",
  "name": "DemoExpensiveVM"
}

Regiony można dodawać lub usuwać z resourceLocation listy w przykładzie. Selektory zasobów umożliwiają większą elastyczność tworzenia i zarządzania wykluczeniami.

Walidacja zakresu przypisania (wersja zapoznawcza)

W większości scenariuszy zakres wykluczeń jest weryfikowany, aby upewnić się, że znajduje się on w zakresie przypisania zasad lub w nim. Właściwość opcjonalna assignmentScopeValidation może zezwalać na pominięcie tej weryfikacji i utworzenie wykluczenia poza zakresem przypisania. Ta walidacja jest przeznaczona dla sytuacji, w których subskrypcja musi zostać przeniesiona z jednej grupy zarządzania (MG) do innej, ale przeniesienie zostanie zablokowane przez zasady ze względu na właściwości zasobów w ramach subskrypcji. W tym scenariuszu można utworzyć wykluczenie dla subskrypcji w bieżącej mg, aby wykluczyć jej zasoby z przypisania zasad w docelowej mg. W ten sposób, gdy subskrypcja zostanie przeniesiona do docelowej grupy zabezpieczeń, operacja nie zostanie zablokowana, ponieważ zasoby są już wykluczone z przypisania zasad. Użycie tej właściwości jest pokazane w poniższym przykładzie:

{
  "properties": {
    "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
    "policyDefinitionReferenceId": [
      "limitSku",
      "limitType"
    ],
    "exemptionCategory": "Waiver",
    "assignmentScopeValidation": "DoNotValidate",
  },
  "systemData": { ...
  },
  "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
  "type": "Microsoft.Authorization/policyExemptions",
  "name": "DemoExpensiveVM"
}

Dozwolone wartości dla elementu assignmentScopeValidation to Default i DoNotValidate. Jeśli nie zostanie określony, zostanie opisany domyślny proces weryfikacji.

Wymagane uprawnienia

Uprawnienia kontroli dostępu opartej na rolach (RBAC) platformy Azure wymagane do zarządzania obiektami wykluczania zasad znajdują się w Microsoft.Authorization/policyExemptions grupie operacji. Wbudowane role Współautor zasad zasobów i Administrator zabezpieczeń mają read uprawnienia i write , a moduł zapisywania danych szczegółowych informacji o zasadach (wersja zapoznawcza) ma read uprawnienie.

Wykluczenia mają dodatkowe środki bezpieczeństwa ze względu na skutki przyznania zwolnienia. Poza wymaganiem Microsoft.Authorization/policyExemptions/write operacji w hierarchii zasobów lub pojedynczym zasobie twórca wykluczenia musi mieć exempt/Action czasownik w przypisaniu docelowym.

Tworzenie wykluczeń i zarządzanie nimi

Wyjątki są zalecane w przypadku scenariuszy związanych z czasem lub określonych scenariuszy, w których hierarchia zasobów lub zasobów powinna być nadal śledzona i w przeciwnym razie będzie oceniana, ale nie powinno być oceniane pod kątem zgodności. Jeśli na przykład środowisko ma wbudowaną definicję Storage accounts should disable public network access (ID: b2982f36-99f2-4db5-8eff-283140c09693) przypisaną z ustawieniem efektu do inspekcji. Po ocenie zgodności zasób StorageAcc1 jest niezgodny, ale StorageAcc1 musi mieć dostęp do sieci publicznej w celach biznesowych. W tym czasie należy przesłać żądanie, aby utworzyć zasób wykluczania przeznaczony dla StorageAcc1elementu . Po utworzeniu StorageAcc1 wykluczenia zostanie wyświetlone jako wykluczone w przeglądzie zgodności.

Regularnie ponownie sprawdzaj wykluczenia, aby upewnić się, że wszystkie kwalifikujące się elementy są odpowiednio wykluczone i natychmiast usuń wszystkie elementy, które nie kwalifikują się do wykluczenia. W tym czasie można również usunąć wygasłe zasoby wykluczania.

Następne kroki