Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der SSE kann an drei Stellen konfiguriert werden: Konfigurationseinstellung für arc-Infrastruktur beim Erstellen oder Aktualisieren der Erweiterung, SecretSync Kubernetes-Ressourcen und SecretProviderClass kubernetes-Ressourcen.
Konfigurationseinstellungen für Arc-Erweiterungen
Konfigurationseinstellungen können festgelegt werden, wenn die SSE Arc-Erweiterungsinstanz erstellt wird, oder sie können später aktualisiert werden.
az k8s-extension create ...
az k8s-extension update ...
Verwenden Oder --configuration-settings <setting>=<value>
zum Erstellen oder Aktualisieren einer SSE-Instanz.
SSE akzeptiert die folgenden Arc-Erweiterungskonfigurationsparameter:
Parametername | BESCHREIBUNG | Standardwert |
---|---|---|
rotationPollIntervalInSeconds |
Gibt an, wie schnell die SSE das von ihr verwaltete Geheimnis überprüft oder aktualisiert. |
3600 (1 Stunde) |
enablePartialSecretSync |
Wenn dieser Wert auf false einen geheimen Schlüssel festgelegt ist, wird nur aktualisiert, wenn jedes enthaltene Element erfolgreich aus Azure Key Vault (AKV) abgerufen werden konnte. Wenn true jedes Element in einem geheimen Schlüssel aktualisiert wird, wenn es erfolgreich abgerufen wurde, ohne den Erfolg anderer Elemente im Geheimen zu berücksichtigen. |
true |
SecretSync-Ressourcen
SecretSync-Ressourcen konfigurieren, wie geheime Schlüssel und Zertifikate von SSE im Kubernetes-Geheimspeicher gespeichert werden. Jede SecretSync-Ressource definiert einen Kubernetes-Schlüssel, obwohl er möglicherweise mehr als einen geheimen Schlüssel enthält.
Beispiel
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
Werte
- metadata.name(erforderlich): Der Name dieser SecretSync-Ressource. Hinweis: Die automatisch erstellte geheime Ressource hat denselben Namen wie diese Ressource.
Innerhalb von .spec:
- serviceAccountName(required): Das Kubernetes-Dienstkonto, das für den Zugriff auf den Kubernetes-Geheimspeicher verwendet wird. Dieses Dienstkonto sollte mit der verwalteten Identität mit dem Zugriff auf die geheimen Schlüssel in Azure Key Vault verbunden werden.
- secretProviderClassName(required): Der Name der SecretProviderClass-Ressource, die definiert, welche geheimen Schlüssel aus Azure Key Vault abgerufen werden sollen.
-
secretObject(required): Definiert, wie die gespeicherte geheime Ressource strukturiert werden soll.
-
type(required): Der Typ des Kubernetes-Geheimobjekts. Legen Sie dieses Feld auf
Opaque
einen allgemeinen Geheimschlüssel ohne auferlegte Struktur fest. Unter "Typen von Kubernetes-Geheimnissen " finden Sie Anleitungen dazu, wie die speziellen geheimen Typen strukturiert werden müssen. -
data(required): Eine Liste der Datenelemente innerhalb der geheimen Ressource. Es muss mindestens ein Element vorhanden sein. Jedes Datenelement muss diese beiden Felder enthalten:
-
sourcePath(required): Der Pfad zu einem Element, das von AKV abgerufen wurde. Wenn nur eine Version des benannten Geheimen von AKV abgerufen wird, ist der Pfad einfach
<secret name>
.
Wenn mehr als eine Version des benannten geheimen Schlüssels von AKV abgerufen wird, lautet<secret name>/0
der SourcePath der neuesten Version , der zweite neueste ist<secret name>/1
usw.
Wenn ein Zertifikat von AKV abgerufen wird, hängen die SourcePaths vom WertobjectType
der SecretProviderClass ab. Wenn derobjectType
SPC "geheim" ist, sind sowohl ein Zertifikat als auch ein privater Schlüssel unter sourcePaths von<secret name>/tls.crt
bzw<secret name>/tls.key
. verfügbar. - targetKey(required): Der Schlüssel im Kubernetes-Geheimobjekt zum Speichern der Daten.
-
sourcePath(required): Der Pfad zu einem Element, das von AKV abgerufen wurde. Wenn nur eine Version des benannten Geheimen von AKV abgerufen wird, ist der Pfad einfach
- labels(optional): Eine Liste der Schlüsselwertpaare zusätzlicher Bezeichnungen, die auf das geheime Objekt angewendet werden sollen.
- annotations(optional): Eine Liste der Schlüsselwertpaare mit zusätzlichen Anmerkungen, die auf das geheime Objekt angewendet werden sollen.
- forceSynchronization(optional): Änderungen an diesem Feld lösen SSE aus, um AKV auf Änderungen erneut zu überprüfen. Kubernetes wird wie gewohnt aktualisiert, wenn SSE aktualisierte Daten findet. Der Wert dieses Felds wirkt sich nicht auf das Verhalten des SSE aus.
-
type(required): Der Typ des Kubernetes-Geheimobjekts. Legen Sie dieses Feld auf
SecretProviderClass-Ressourcen
SecretProviderClass-Ressourcen konfigurieren, was und wie aus einem Azure Key Vault abgerufen werden kann. In dieser Referenz werden nur die Felder behandelt, die für die SSE-Anwendungsfälle der SecretProviderClass erforderlich sind.
Beispiel
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
Werte
Innerhalb von .spec:
-
provider(required): Legen Sie dieses Feld bei Verwendung von SSE fest
azure
, um geheime Schlüssel aus Azure Key Vault abzurufen. -
parameters(required): Definiert, wie und wo AKV-Schlüssel abgerufen werden sollen.
- clientID(required): Die Client-ID für die verwaltete Identität mit Zugriff auf die erforderlichen geheimen Schlüssel. Diese verwaltete Identität muss über eine Verbundanmeldeinformation verfügen, die mit dem Dienstkonto verknüpft ist, das in der SecretSync-Ressource benannt ist, die diese SecretProviderClass verwendet.
- tenantID(required): Die ID des Azure-Mandanten, der die AKV-Instanz enthält.
- keyvaultName(required): Der Name des keyvault.
-
objects(required): Eine Zeichenfolge mit einem YAML-Fragment, das die elemente darstellt, die von diesem AKV abgerufen werden sollen. Achten Sie auf das Beispiel, um zu sehen, wie das Objektfeld erstellt wird. Weitere Beispiele für SecretProviderClass-Ressourcen für die Verwendung mit Azure Key Vault finden Sie in den AKV-Anbieterdokumenten. Objekte müssen mindestens ein Element innerhalb des Unterobjekts "array" enthalten.
- objectName(required): Der Name des geheimen Schlüssels oder Zertifikats, das von AKV abgerufen werden soll.
-
objectType(required): Legen Sie dieses Feld
secret
beim Abrufen eines geheimen Schlüssels von AKV fest.
Legen Sie beim Abrufen eines Zertifikats dieses Feld auf Folgendes fest:-
cert
um nur das Zertifikat abzurufen. -
key
um nur den öffentlichen Schlüssel des Zertifikats abzurufen. -
secret
um das Zertifikat und den privaten Schlüssel abzurufen.
-
- objectVersionHistory(optional): Wenn vorhanden und größer als eins ist, werden diese vielen Versionen von AKV abgerufen, beginnend mit der neuesten Version.