Megosztás a következőn keresztül:


Azure Arc-kompatibilis adatszolgáltatások üzemeltetése minimális jogosultságokkal

Az Arc-kompatibilis adatszolgáltatások minimális jogosultságokkal történő üzemeltetése ajánlott biztonsági eljárás. Csak a felhasználók és a szolgáltatásfiókok számára adja meg a szükséges feladatok elvégzéséhez szükséges engedélyeket. Az Azure és a Kubernetes egyaránt biztosít egy szerepköralapú hozzáférés-vezérlési modellt, amely ezen engedélyek megadására használható. Ez a cikk olyan gyakori forgatókönyveket ismertet, amelyekben a minimális jogosultsági szintű biztonságot kell alkalmazni.

Megjegyzés:

Ebben a cikkben egy névtérnevet arc használunk. Ha másik nevet szeretne használni, akkor az egész folyamat során ugyanazt a nevet kell használnia. Ebben a cikkben a kubectl CLI segédprogramot használjuk példaként. A Kubernetes API-t használó bármely eszköz vagy rendszer használható.

Az Azure Arc-adatkezelő üzembe helyezése

Az Azure Arc-adatkezelő üzembe helyezéséhez olyan engedélyekre van szükség, amelyek magas szintű jogosultságnak tekinthetők, például Kubernetes-névtér létrehozása vagy fürtszerepkör létrehozása. Az alábbi lépéseket követve az adatkezelő üzembe helyezését több lépésre bonthatja, amelyeket egy felhasználó vagy egy olyan szolgáltatásfiók hajthat végre, amely rendelkezik a szükséges engedélyekkel. A feladatok elkülönítése biztosítja, hogy a folyamat minden felhasználója vagy szolgáltatásfiókja csak a szükséges engedélyekkel és semmi többel rendelkezik.

Olyan névtér üzembe helyezése, amelyben az adatkezelő létrejön

Ez a lépés létrehoz egy új, dedikált Kubernetes-névteret, amelyben az Arc-adatkezelő üzembe lesz helyezve. Először ezt a lépést kell elvégezni, mert a következő lépések ezt az új névteret fogják használni a megadott engedélyek hatóköreként.

A művelet végrehajtásához szükséges engedélyek:

  • Névtér
    • Létrehozás
    • Szerkesztés (ha az OpenShift-fürtök esetében szükséges)

Az alábbiakhoz hasonló parancs futtatásával hozzon létre egy új, dedikált névteret, amelyben az adatkezelő létrejön.

kubectl create namespace arc

Ha OpenShift-et használ, a openshift.io/sa.scc.supplemental-groups névtérben lévő megjegyzéseket és openshift.io/sa.scc.uid-range széljegyzeteket a következővel kubectl edit namespace <name of namespace>kell szerkesztenie: . Módosítsa ezeket a meglévő széljegyzeteket úgy, hogy megfeleljenek ezeknek az adott UID-nek és fsGroup-azonosítóknak/-tartományoknak.

openshift.io/sa.scc.supplemental-groups: 1000700001/10000
openshift.io/sa.scc.uid-range: 1000700001/10000

Engedélyek hozzárendelése az üzembe helyezési szolgáltatásfiókhoz és a felhasználókhoz/csoportokhoz

Ez a lépés létrehoz egy szolgáltatásfiókot, és szerepköröket és fürtszerepköröket rendel hozzá a szolgáltatásfiókhoz, hogy a szolgáltatásfiók egy feladatban használható legyen az Arc-adatkezelő üzembe helyezéséhez a minimálisan szükséges jogosultságokkal.

A művelet végrehajtásához szükséges engedélyek:

  • Szolgáltatásfiók
    • Létrehozás
  • Szerepet
    • Létrehozás
  • Szerepkör kötése
    • Létrehozás
  • Fürtszerepkör
    • Létrehozás
  • Fürtszerepkör kötése
    • Létrehozás
  • A szolgáltatásfióknak adott összes engedély (részletekért tekintse meg az arcdata-deployer.yaml szakaszt)

Mentse az arcdata-deployer.yaml másolatát, és cserélje le a fájlban lévő helyőrzőt {{NAMESPACE}} az előző lépésben létrehozott névtérre, például: arc. Futtassa a következő parancsot a telepítő szolgáltatásfiókjának a szerkesztett fájllal való létrehozásához.

kubectl apply --namespace arc -f arcdata-deployer.yaml

Engedélyek megadása a felhasználók számára a bootstrapper-feladat és az adatkezelő létrehozásához

A művelet végrehajtásához szükséges engedélyek:

  • Szerepet
    • Létrehozás
  • Szerepkör kötése
    • Létrehozás

Mentse az arcdata-installer.yaml másolatát, és cserélje le a fájl helyőrzőjének {{INSTALLER_USERNAME}} nevét a felhasználó nevére, és adja meg például a következő engedélyeket: john@contoso.com. Szükség szerint adjon hozzá további szerepkörkötési témákat, például más felhasználókat vagy csoportokat. Futtassa a következő parancsot a telepítő engedélyeinek létrehozásához a szerkesztett fájllal.

kubectl apply --namespace arc -f arcdata-installer.yaml

A bootstrapper-feladat üzembe helyezése

A művelet végrehajtásához szükséges engedélyek:

  • Az arcdata-installer-role szerepkörhöz az előző lépésben hozzárendelt felhasználó

Futtassa a következő parancsot a bootstrapper-feladat létrehozásához, amely előkészítő lépéseket fog végrehajtani az adatkezelő üzembe helyezéséhez.

kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/deploy/yaml/bootstrapper.yaml

Az Arc-adatkezelő létrehozása

Most már készen áll az adatkezelő létrehozására.

Először hozzon létre egy másolatot a sablonfájlról helyileg a számítógépen, hogy módosíthasson néhány beállítást.

A metrikák és naplók irányítópultjának felhasználóneveinek és jelszavainak létrehozása

A fájl tetején megadhat egy felhasználónevet és jelszót, amellyel rendszergazdaként hitelesíthetők a metrikák és naplók irányítópultjai. Válasszon biztonságos jelszót, és ossza meg csak azokkal, akiknek rendelkezniük kell ezekkel a jogosultságokkal.

A Kubernetes-titkos kódokat a rendszer base64 kódolású sztringként tárolja – egyet a felhasználónévhez, egyet pedig a jelszóhoz.

echo -n '<your string to encode here>' | base64
# echo -n 'example' | base64

Szükség esetén SSL-/TLS-tanúsítványokat is létrehozhat a naplók és metrikák irányítópultjaihoz. Kövesse az SSL/TLS-tanúsítványok megadása a Kubernetes natív eszközeinek üzembe helyezése során című témakör utasításait.

Az adatkezelő konfigurációjának szerkesztése

Szükség szerint módosítsa az adatkezelő konfigurációját:

SZÜKSÉGES

  • location: Módosítsa ezt az Azure-helyet az adatkezelő metaadatainak tárolására. Tekintse át az elérhető régiók listáját.
  • logsui-certificate-secret: A Kubernetes-fürtben a naplók felhasználói felületi tanúsítványához létrehozott titkos kód neve.
  • metricsui-certificate-secret: A Kubernetes-fürtön a metrikák felhasználói felületi tanúsítványához létrehozott titkos kód neve.

Tekintse át ezeket az értékeket, és frissítse az üzembe helyezést:

  • storage..className: az adatkezelő adataihoz és naplófájljaihoz használandó tárolási osztály. Ha nem biztos a Kubernetes-fürtben elérhető tárolási osztályokban, futtassa a következő parancsot: kubectl get storageclass. Az alapértelmezett érték az alapértelmezett, amely feltételezi, hogy létezik egy tárolási osztály, és az alapértelmezett név nem az alapértelmezett tárolási osztály. Megjegyzés: Két className-beállítást kell beállítani a kívánt tárolási osztályhoz – egyet az adatokhoz, egyet pedig a naplókhoz.

  • serviceType: Módosítsa a szolgáltatás típusát NodePortra, ha nem Használ LoadBalancert.

  • Az Azure Red Hat OpenShift vagy Red Hat OpenShift tárolóplatform biztonsága: a beállításokat cserélje le az adatkezelő yaml-fájljának következő értékeire.

    security:
      allowDumps: false
      allowNodeMetricsCollection: false
      allowPodMetricsCollection: false
    

Választható

Az alábbi beállítások megadása nem kötelező.

  • name: Az adatkezelő alapértelmezett neve arc, de igény szerint módosíthatja.
  • displayName: Állítsa be ugyanazt az értéket, mint a fájl tetején lévő névattribútum.
  • registry: Az alapértelmezett beállításjegyzék a Microsoft Container Registry. Ha lekérte a rendszerképeket a Microsoft Container Registryből, és egy privát tárolóregisztrációs adatbázisba küldi őket, itt adja meg a beállításjegyzék IP-címét vagy DNS-nevét.
  • dockerRegistry: A rendszerképek privát tárolóregisztrációs adatbázisból való lekéréséhez használható titkos kód, ha szükséges.
  • repository: A Microsoft Container Registry alapértelmezett adattára az arcdata. Ha privát tárolóregisztrációs adatbázist használ, adja meg az Azure Arc-kompatibilis adatszolgáltatások tárolólemezképét tartalmazó mappa/adattár elérési útját.
  • imageTag: A jelenlegi legújabb verziócímke alapértelmezés szerint szerepel a sablonban, de ha régebbi verziót szeretne használni, módosíthatja.
  • logsui-certificate-secret: A Kubernetes-fürtben a naplók felhasználói felületi tanúsítványához létrehozott titkos kód neve.
  • metricsui-certificate-secret: A Kubernetes-fürtön a metrikák felhasználói felületi tanúsítványához létrehozott titkos kód neve.

Az alábbi példa egy befejezett adatvezérlő yaml-et mutat be.

apiVersion: v1
data:
  password: <your base64 encoded password>
  username: <your base64 encoded username>
kind: Secret
metadata:
  name: metricsui-admin-secret
type: Opaque

---

apiVersion: v1
data:
  password: <your base64 encoded password>
  username: <your base64 encoded username>
kind: Secret
metadata:
  name: logsui-admin-secret
type: Opaque

---

apiVersion: arcdata.microsoft.com/v5
kind: DataController
metadata:
  name: arc-dc
spec:
  credentials:
    dockerRegistry: arc-private-registry # Create a registry secret named 'arc-private-registry' if you are going to pull from a private registry instead of MCR.
    serviceAccount: sa-arc-controller
  docker:
    imagePullPolicy: Always
    imageTag: v1.31.0_2024-07-09
    registry: mcr.microsoft.com
    repository: arcdata
  infrastructure: other # Must be a value in the array [alibaba, aws, azure, gcp, onpremises, other]
  security:
    allowDumps: true # Set this to false if deploying on OpenShift
    allowNodeMetricsCollection: true # Set this to false if deploying on OpenShift
    allowPodMetricsCollection: true # Set this to false if deploying on OpenShift
  services:
  - name: controller
    port: 30080
    serviceType: LoadBalancer # Modify serviceType based on your Kubernetes environment
  settings:
    ElasticSearch:
      vm.max_map_count: "-1"
    azure:
      connectionMode: indirect # Only indirect is supported for Kubernetes-native deployment for now.
      location: eastus # Choose a different Azure location if you want
      resourceGroup: <your resource group>
      subscription: <your subscription GUID>
    controller:
      displayName: arc-dc
      enableBilling: true
      logs.rotation.days: "7"
      logs.rotation.size: "5000"
  storage:
    data:
      accessMode: ReadWriteOnce
      className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
      size: 15Gi
    logs:
      accessMode: ReadWriteOnce
      className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
      size: 10Gi

Mentse a szerkesztett fájlt a helyi számítógépen, és futtassa a következő parancsot az adatkezelő létrehozásához:

kubectl create --namespace arc -f <path to your data controller file>

#Example
kubectl create --namespace arc -f data-controller.yaml

A létrehozási állapot figyelése

A vezérlő létrehozása néhány percet vesz igénybe. Az előrehaladást egy másik terminálablakban az alábbi parancsokkal figyelheti:

kubectl get datacontroller --namespace arc
kubectl get pods --namespace arc

Az alábbi parancsok futtatásával bármely pod létrehozási állapotát vagy naplóit is ellenőrizheti. Ez különösen hasznos a problémák elhárításához.

kubectl describe pod/<pod name> --namespace arc
kubectl logs <pod name> --namespace arc

#Example:
#kubectl describe pod/control-2g7bl --namespace arc
#kubectl logs control-2g7b1 --namespace arc

Az Azure Arc-adatkezelő létrehozásához számos további lehetőség közül választhat:

Csak ki szeretné próbálni a dolgokat? Az Azure Arc Jumpstart használatának első lépései az AKS-en, az Amazon EKS-en vagy a GKE-n vagy egy Azure-beli virtuális gépen.