AWS Exemples de code de secret et de fournisseur de configuration - AWS Systems Manager

AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Exemples de code de secret et de fournisseur de configuration

Exemples d’authentification et de contrôle d’accès pour l’ASCP

Exemple : politique IAM autorisant le service d’identité du pod Amazon EKS (pods.eks.amazonaws.com) à assumer le rôle et à baliser la session :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

SecretProviderClass

Vous utilisez YAML pour décrire les paramètres à monter dans Amazon EKS à l’aide de l’ASCP. Pour obtenir des exemples, consultez Utilisation SecretProviderClass.

SecretProviderClass Structure YAML

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: name spec: provider: aws parameters: region: failoverRegion: pathTranslation: usePodIdentity: preferredAddressType: objects:

Le champ Paramètres contient les détails de la demande de montage :

region

(Facultatif) Le Région AWS du paramètre. Si vous n'utilisez pas ce champ, ASCP va rechercher la région à partir de l'annotation sur le nœud. Comme cette recherche ajoute une surcharge aux demandes de montage, nous vous recommandons de fournir la région pour les clusters qui utilisent un grand nombre de pods.

Si vous spécifiez également failoverRegion, l’ASCP essaie de récupérer le paramètre des deux régions. Si l’une des régions renvoie une erreur 4xx, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du region, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement de region, mais qu’il l’est avec succès de failoverRegion, l’ASCP monte cette valeur de paramètre.

failoverRegion

(Facultatif) Si vous incluez ce champ, l’ASCP va essayer de récupérer le paramètre à partir des régions définies dans region et dans ce champ. Si l’une des régions renvoie une erreur 4xx, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du region, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement de region, mais qu’il l’est avec succès de failoverRegion, l’ASCP monte cette valeur de paramètre. Pour accéder à un exemple sur la façon de procéder, consultez Basculement de paramètres multi-régions.

pathTranslation

(Facultatif) Un caractère de substitution unique à utiliser si le nom de fichier dans Amazon EKS contient un caractère séparateur de chemin, tel que la barre oblique (/) sur Linux. L'ASCP ne peut pas créer un fichier monté possédant un caractère de séparation de chemin. Par contre, l'ASCP va remplacer le caractère séparateur de chemin par un autre caractère. Si vous n'utilisez pas ce champ, la valeur par défaut est le trait de soulignement (_). Par exemple, My/Path/Parameter se monte en tant que My_Path_Parameter.

Pour empêcher la substitution de caractères, entrez la chaîne False.

usePodIdentity

(Facultatif) Détermine l’approche d’authentification. Lorsqu’il n’est pas spécifié, sa valeur par défaut est Rôles IAM pour les comptes de service (IRSA) (IRSA).

  • Pour utiliser l’identité du pod EKS, utilisez l’une des valeurs suivantes : "true"", "True", "TRUE", "t" ou "T".

  • Pour utiliser IRSA de manière explicite, définissez l’une des valeurs suivantes : "false", "False", "FALSE", "f" ou "F""=.

preferredAddressType

(Facultatif) Spécifie le type d’adresse IP préféré pour les communications entre les points de terminaison de l’agent d’identité du pod. Le champ n’est applicable que lors de l’utilisation de la fonctionnalité d’identité du pod EKS et sera ignoré lors de l’utilisation des rôles IAM pour les comptes de service. Les valeurs ne sont pas sensibles à la casse. Les valeurs valides sont :

  • "ipv4", "IPv4" «, ou "IPV4" — Forcer l'utilisation du point de IPv4 terminaison Pod Identity Agent

  • "ipv6""IPv6", ou "IPV6" — Forcer l'utilisation du point de IPv6 terminaison Pod Identity Agent

  • non spécifié — Utilisez la sélection automatique du point de terminaison, en essayant d'abord le point de IPv4 terminaison et en revenant au IPv6 point de terminaison en cas d' IPv4 échec

objects

Chaîne contenant une déclaration YAML des secrets à monter. Nous vous recommandons d'utiliser une chaîne YAML multi-ligne ou un caractère pipe (|).

objectName

Obligatoire. Spécifie le nom du paramètre ou secret à récupérer. Pour Parameter Store, il s’agit Name du paramètre et il peut s’agir du nom ou de l’ARN complet du paramètre. Pour Secrets Manager, il s’agit du paramètre SecretId, et il peut s’agir du nom convivial ou de l’ARN complet du secret.

objectType

Obligatoire si vous n'utilisez pas d'ARN Secrets Manager pour objectName. Pour Parameter Store, utilisez ssmparameter. Pour Secrets Manager, utilisez secretsmanager.

objectAlias

(Facultatif) Nom de fichier du secret dans le pod Amazon EKS. Si vous ne spécifiez pas ce champ,objectName apparaît en tant que nom de fichier.

objectVersion

(Facultatif) ID de version du paramètre. Déconseillé, car vous devez mettre à jour l’identifiant de la version à chaque fois que vous mettez le paramètre à jour. La version la plus récente est utilisée par défaut. Si vous incluez un failoverRegion, ce champ représente le champ principal objectVersion.

objectVersionLabel

(Facultatif) Alias de la version. La version par défaut est la plus récente AWSCURRENT. Si vous incluez un failoverRegion, ce champ représente le champ principal objectVersionLabel.

jmesPath

(Facultatif) Une carte des clés du paramètre avec les fichiers à monter dans Amazon EKS. Pour utiliser ce champ, votre valeur de paramètre doit être au format JSON.

L'exemple suivant montre comment se présente un paramètre codé JSON.

{ "username" : "myusername", "password" : "mypassword" }

Les clés sont username et password. La valeur associée à username est myusername et la valeur associée à password est mypassword.

Si vous utilisez ce champ, vous devez inclure les sous-champs path et objectAlias.

path

Une clé d’une paire clé-valeur dans le JSON de la valeur de paramètre. Si le champ contient un trait d'union, utilisez des guillemets simples pour l'ignorer, par exemple : path: '"hyphenated-path"'

objectAlias

Le nom du fichier à monter dans le pod Amazon EKS. Si le champ contient un trait d'union, utilisez des guillemets simples pour l'ignorer, par exemple : objectAlias: '"hyphenated-alias"'

failoverObject

(Facultatif) Si vous spécifiez ce champ, l’ASCP essaie de récupérer à la fois le paramètre spécifié dans le champ principal objectName et le paramètre spécifié dans le sous-champ failoverObject objectName. Si l’une renvoie une erreur 4xx, notamment en raison d’un problème d’authentification, l’ASCP ne monte aucun paramètre. Si le paramètre est récupéré avec succès à partir du objectName principal, l’ASCP monte cette valeur de paramètre. Si le paramètre n’est pas récupéré correctement du objectName principal, mais qu’il l’est avec succès du objectName de basculement, l’ASCP monte cette valeur de paramètre. Si vous incluez ce champ, vous devez inclure le champ objectAlias. Pour accéder à un exemple sur la façon de procéder, consultez Basculement vers un paramètre différent.

Vous allez généralement utiliser ce champ lorsque le paramètre de basculement n’est pas une réplique. Pour obtenir un exemple de spécification des capacités, consultez Basculement de paramètres multi-régions.

objectName

Nom ou ARN complet du paramètre de basculement. Si vous utilisez un ARN, la région de l'ARN doit correspondre au champ failoverRegion.

objectVersion

(Facultatif) ID de version du paramètre. Doit correspondre au principal objectVersion. Déconseillé, car vous devez mettre à jour l’identifiant de la version à chaque fois que vous mettez le paramètre à jour. La version la plus récente est utilisée par défaut.

objectVersionLabel

(Facultatif) Alias de la version. La version par défaut est la plus récente AWSCURRENT.

Créez une SecretProviderClass configuration de base pour monter les paramètres dans vos Amazon EKS Pods.

Pod Identity

SecretProviderClass pour utiliser un paramètre dans le même cluster Amazon EKS :

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameter-store spec: provider: aws parameters: objects: | - objectName: "MyParameter" objectType: "ssmparameter" usePodIdentity: "true"
IRSA
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: deployment-aws-parameter spec: provider: aws parameters: objects: | - objectName: "MyParameter" objectType: "ssmparameter"

Utilisation SecretProviderClass

Utilisez ces exemples pour créer des configurations SecretProviderClass pour différents scénarios.

Exemple : monter les paramètres par nom ou ARN

Cet exemple montre comment monter trois types de paramètres différents :

  • Un paramètre spécifié par ARN complet

  • Un paramètre spécifié par nom

  • Une version paramétrée d’un secret

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: objects: | - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter2-d4e5f6" - objectName: "MyParameter3" objectType: "ssmparameter" - objectName: "MyParameter4" objectType: "ssmparameter" objectVersionLabel: "AWSCURRENT"

Exemple : monter des paires clé-valeur à partir d’un paramètre

Cet exemple montre comment monter des paires clé-valeur spécifiques à partir d’un paramètre au format JSON :

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: objects: | - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter-a1b2c3" jmesPath: - path: username objectAlias: dbusername - path: password objectAlias: dbpassword

Exemple : exemples de configuration de basculement

Ces exemples montrent comment configurer le basculement pour les paramètres.

Basculement de paramètres multi-régions

Cet exemple montre comment configurer le basculement automatique pour un paramètre répliqué à travers plusieurs régions :

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "MyParameter"
Basculement vers un paramètre différent

Cet exemple montre comment configurer le basculement vers un autre paramètre (pas un réplica) :

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "arn:aws:ssm:us-east-1:777788889999:parameter:MyParameter-a1b2c3" objectAlias: "MyMountedParameter" failoverObject: - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyFailoverParameter-d4e5f6"

Ressources supplémentaires

Pour plus d’informations sur l’utilisation d’ASCP avec Amazon EKS, consultez les ressources suivantes :