Dela via


Konfigurationsreferens för Azure Key Vault Secret Store-tillägget

SSE kan konfigureras på tre platser: Konfigurationsinställning som tillhandahålls till Arc-infrastrukturen när du skapar eller uppdaterar tillägget, SecretSync kubernetes-resurser och SecretProviderClass kubernetes-resurser.

Konfigurationsinställningar för Arc-tillägg

Konfigurationsinställningar kan ställas in när SSE Arc-tilläggsinstansen skapas, eller så kan de uppdateras senare. Använd --configuration-settings <setting>=<value> med az k8s-extension create ... eller az k8s-extension update ... för att skapa eller uppdatera en SSE-instans.

SSE accepterar följande konfigurationsparametrar för Arc-tillägget:

Parameternamn Beskrivning Standardvärde
rotationPollIntervalInSeconds Anger hur snabbt SSE kontrollerar eller uppdaterar hemligheten som den hanterar. 3600 (1 timme)
enablePartialSecretSync När värdet är inställt på false en hemlighet uppdateras bara om alla inneslutna objekt kan hämtas från Azure Key Vault (AKV) korrekt. När true varje objekt i en hemlighet uppdateras om det hämtades utan hänsyn till framgången för andra objekt i hemligheten. true

SecretSync-resurser

SecretSync-resurser konfigurerar hur SSE lagrar hemligheter och certifikat i Kubernetes-hemlighetsarkivet. Varje SecretSync-resurs definierar en Kubernetes-hemlighet, även om den kan innehålla mer än en hemlighet.

Exempel

apiVersion: secret-sync.x-k8s.io/v1alpha1
kind: SecretSync
metadata:
  name: secret-sync-name
  namespace: workload-namespace
spec:
  serviceAccountName: workload-serviceaccountname
  secretProviderClassName: secret-provider-class-name
  secretObject:
    type: Opaque
    data:
    - sourcePath: aSecret/0
      targetKey: aSecret-data-key0
    - sourcePath: aSecret/1
      targetKey: aSecret-data-key1
    labels:
      - fromExample: absolutelyYes
    annotations:
      - exampleAnnotation: annotationValue 
  forceSynchronization: ArbitraryValue12354

Värden

  • metadata.name(krävs): Namnet på den här SecretSync-resursen. Obs! Den automatiskt skapade hemliga resursen har samma namn som den här resursen.

Inom .spec:

  • serviceAccountName(required): Kubernetes-tjänstkontot som används för att komma åt Kubernetes-hemlighetsarkivet. Det här tjänstkontot ska federeras med den hanterade identiteten med åtkomst till hemligheterna i Azure Key Vault.
  • secretProviderClassName(krävs): Namnet på SecretProviderClass-resursen som definierar vilka hemligheter som ska hämtas från Azure Key Vault.
  • secretObject(required): Definierar hur den lagrade hemliga resursen ska struktureras.
    • type(required): Typen av Kubernetes-hemligt objekt. Ange det här fältet till Opaque för en allmän hemlighet utan någon pålagd struktur. Se Typer av Kubernetes-hemligheter för vägledning om hur de särskilda typerna av hemligheter måste struktureras.
    • data(krävs): En lista över dataobjekt i den hemliga resursen. Det måste finnas minst ett objekt. Varje dataobjekt måste innehålla följande två fält:
      • sourcePath(krävs): Sökvägen till ett objekt som hämtats från AKV. När endast en version av den namngivna hemligheten hämtas från AKV är sökvägen helt enkelt <secret name>.
        Om mer än en version av den namngivna hemligheten hämtas från AKV är <secret name>/0den senaste versionens sourcePath , den andra senaste är <secret name>/1osv.
        När ett certifikat hämtas från AKV beror sourcePaths på värdet objectType för i SecretProviderClass. objectType När i SPC är "hemlig" är både ett certifikat och en privat nyckel tillgängliga på sourcePaths för <secret name>/tls.crt respektive<secret name>/tls.key.
      • targetKey(required): Nyckeln i kubernetes-hemlighetsobjektet som data ska lagras i.
    • labels(optional): En lista över nyckel/värde-par med ytterligare etiketter som ska tillämpas på det hemliga objektet.
    • anteckningar(valfritt): En lista över nyckel/värde-par med ytterligare anteckningar som ska tillämpas på det hemliga objektet.
    • forceSynchronization(optional): Ändringar i det här fältet utlöser SSE för att kontrollera om AKV har ändrats. Kubernetes uppdateras som vanligt om SSE hittar uppdaterade data. Värdet för det här fältet påverkar inte hur handelshögskolan beter sig.

SecretProviderClass-resurser

SecretProviderClass-resurser konfigurerar vad och hur du hämtar från ett Azure Key Vault. Den här referensen omfattar endast de fält som krävs för SSE-användningsfallen för SecretProviderClass.

Exempel

apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: secret-provider-class-name
  namespace: workload-namespace
spec:
  provider: azure
  parameters:
    clientID: "xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx"
    tenantID: "xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx"
    keyvaultName: exampleKeyvault
    objects: |
      array:
        - |
          objectName: aSecret
          objectType: secret
          objectVersionHistory: 2
        - |
          objectName: aCertificate
          objectType: secret

Värden

Inom .spec:

  • provider(required): Ange det här fältet till azure när du använder SSE för att hämta hemligheter från Azure Key Vault.
  • parameters(required): Definierar hur och var du hämtar AKV-hemligheter från.
    • clientID(required): ClientID för den hanterade identiteten med åtkomst till nödvändiga hemligheter. Den här hanterade identiteten måste ha en federerad autentiseringsuppgift associerad med tjänstkontot med namnet i SecretSync-resursen som använder den här SecretProviderClass.
    • tenantID(required): ID för Azure-klientorganisationen som innehåller AKV-instansen.
    • keyvaultName(required): Namnet på keyvault.
    • objects(required): En sträng som innehåller ett YAML-fragment som representerar de objekt som ska hämtas från denna AKV. Var uppmärksam på exemplet för att se hur objektfältet konstrueras. Ytterligare exempel på SecretProviderClass-resurser för användning med Azure Key Vault finns i AKV-providerdokumenten. objekt måste innehålla minst ett objekt i underobjektet "matris".
      • objectName(required): Namnet på hemligheten eller certifikatet som ska hämtas från AKV.
      • objectType(required): Ange det här fältet till secret när du hämtar en hemlighet från AKV.
        När du hämtar ett certifikat anger du det här fältet till:
        • cert för att hämta endast certifikatet.
        • key för att endast hämta certifikatets offentliga nyckel.
        • secret för att hämta certifikatet och den privata nyckeln.
      • objectVersionHistory(valfritt): Om det finns och är större än en hämtas dessa många versioner från AKV, från och med den senaste.