Policy-Setup

Policys für ML-Anwendungen einrichten

Die Policy-Einrichtung ist für Folgendes von entscheidender Bedeutung:

  • Funktionalität sicherstellen: Damit Ihre ML-Anwendung voll funktionsfähig ist, müssen Sie die erforderlichen Berechtigungen erteilen. Wenn einem Service in Ihrer Lösung keine erforderlichen Berechtigungen fehlen, schlägt die Lösung fehl. Beispiel: Wenn Sie Ihrem ML-Job keinen Zugriff auf Ihr Subnetz erteilen, kann die Anwendung unterbrochen werden.

  • Least-Privilege-Prinzip beachten: Um die Sicherheit aufrechtzuerhalten, müssen Sie nur die erforderlichen Berechtigungen erteilen. Beispiel: Anstatt allgemeine Berechtigungen wie "manage object-family" für den gesamten Mandanten zu erteilen, erteilen Sie bestimmte Aktionen, wie das Lesen eines Buckets in einem bestimmten Compartment für einen bestimmten Resource Principal.

  • Mandantenisolierung implementieren: Mit ML-Anwendungen können Sie auch die Mandantenisolierung implementieren. Dadurch wird sichergestellt, dass Workloads, die im Auftrag Ihrer Kunden ausgeführt werden, nur auf die Ressourcen zugreifen können, die dem jeweiligen Kunden gehören, und eine zusätzliche Sicherheitsebene bieten.

Eine KI/ML-Lösung, die als ML-Anwendung entwickelt wurde, basiert in der Regel auf mehreren OCI-Services (wie Data Science, Object Storage, Networking und Logging). Konfigurieren Sie die richtigen Policys für alle diese Services, einschließlich der Policys für ML-Anwendungsressourcen.

Vereinfachung des Policy-Setups mit einem Beispielinfrastrukturprojekt

Um diesen Prozess zu vereinfachen, stellt ML Applications ein Beispielinfrastrukturprojekt bereit. Mit diesem Projekt können Sie produktionsbezogene Policys und andere Voraussetzungen für die Entwicklung Ihrer ML-Anwendungen einrichten. Es unterstützt alle Szenarios, einschließlich Provider und Consumer im selben Mandanten, verschiedene Mandanten und sogar interne ML-Anwendungsumgebungen.

Das Beispielinfrastrukturprojekt ist hier verfügbar: sample-project-policies.

Klonen Sie dieses Projekt, und bereiten Sie damit die Infrastruktur für alle Umgebungen vor, in denen ML-Anwendungen bereitgestellt werden. Es erstellt Policys mit den geringsten Berechtigungen, die Mandantenisolierung implementieren. Die Policys umfassen auch ein Compartment, einen Tag-Namespace und ein Tag.

Das Projekt enthält eine Dokumentation in README.md-Dateien, in der Sie detaillierte Informationen über das Projekt und seine Komponenten finden.

Führen Sie die folgenden Schritte aus, um eine Umgebung für ML-Anwendungen zu konfigurieren, einschließlich der erforderlichen Policys.

  1. Bereiten Sie den Umgebungsordner vor:

    • Sie können den Standardumgebungsordner dev (environments/dev) verwenden oder ihn als Vorlage verwenden, um Ihre benutzerdefinierte Umgebung zu erstellen.
    • So erstellen Sie Ihre benutzerdefinierte Umgebung:
      • Erstellen Sie eine Kopie des Ordners für die Entwicklungsumgebung (environments/dev).
      • Benennen Sie den kopierten Ordner so um, dass er dem Namen Ihrer Umgebung entspricht.
  2. Umgebung konfigurieren:

    • Navigieren Sie zu dem Ordner, der Ihrer Umgebung entspricht (Beispiel: environments/dev).
    • Bearbeiten Sie die Datei input_variables.tfvars, um Ihre Umgebungseinstellungen zu konfigurieren.
  3. Führen Sie Terraform aus, um Ressourcen zu erstellen:

    1. Initialisieren Sie Terraform in Ihrem Umgebungsordner:

      terraform init
    2. Wenden Sie die Konfiguration an, um ein Compartment, eine Policy, einen Tag-Namespace und ein Tag zu erstellen:
      terraform apply -var- file input_variables.tfvars
    3. Falls erforderlich, löschen Sie die erstellten Ressourcen:
      terraform destroy -var- file input_variables.tfvars
Hinweis

  • Möglicherweise müssen Sie den HTTP-Proxy konfigurieren.

  • Die Terraform-Skripte erstellen ein Compartment der obersten Ebene mit dem Namen
    ml-app-<name-of-your-application>-<environment-suffix>
    .
  • Sie können eine Vorschau der von Terraform erstellten Ressourcen anzeigen, indem Sie Folgendes ausführen:

    terraform plan -var- file input_variables.tfvars
  • Wenn Ihre Anwendung ein bestimmtes Subnetz erfordert, geben Sie dessen ID in der Datei input_variables.tfvars an.