Passer au contenu

Comment partager les secrets de Secrets Manager entre des comptes ?

Lecture de 3 minute(s)
0

Je souhaite partager mon secret AWS Secrets Manager avec un autre compte AWS.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Vous devez créer et spécifier une clé AWS Key Management Service (AWS KMS) personnalisée pour partager des secrets entre les comptes. Vous ne pouvez pas utiliser la clé KMS par défaut lorsque vous partagez des secrets entre les comptes. La clé KMS par défaut est créée, gérée et utilisée en votre nom par un service AWS qui s'exécute sur AWS KMS. Il est propre à votre compte et à votre région AWS et vous ne pouvez l'utiliser qu'avec le service qui l'a créé. Pour plus d'informations, consultez la section Clés AWS KMS.

Configurer le compte propriétaire du secret

Si vous ne disposez pas de secret, créez-en un dans le Gestionnaire de secrets. Spécifiez l'Amazon Resource Name (ARN) dans le paramètre d'ID de clé AWS KMS pour le secret.

Si vous disposez déjà d’un secret qui utilise un alias, modifiez-le. Assurez-vous de spécifier l'ARN de la clé KMS dans le paramètre ID de clé KMS pour le secret. Vous devez utiliser l'ARN complet de la clé KMS pour accéder à un secret à partir d'un autre compte.

Important : Dans les politiques suivantes, remplacez l'ARN principal par l'ARN de votre compte de destination, le SecretARN par l'ARN de votre compte source et l'ARN de la clé KMS par l'ARN de votre compte source. Remplacez également YOUR-REGION par votre région.

Ajoutez l'instruction suivante à la stratégie de clé, puis remplacez les exemples de valeurs par les vôtres :

{  "Sid": "AllowUseOfTheKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::444455556666:user/username"
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "secretsmanager.YOUR-REGION.amazonaws.com"
    },
    "StringLike": {
      "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:YOUR-REGION:111122223333:secret:secretname??????"
    }
  }
}

Puis, attachez une politique basée sur les ressources pour accorder au rôle Gestion des identités et des accès AWS (AWS IAM) les autorisations nécessaires pour accéder au secret.

Exemple de politique relative aux secrets basée sur les ressources :

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::444455556666:user/username"
      },
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "*"
    }
  ]
  }

Configurer les autorisations dans l'autre compte qui nécessite le secret

L'utilisateur IAM doit disposer de l'autorisation secretsmanager:GetSecretValue pour récupérer le secret. En outre, l'utilisateur IAM doit disposer d'autorisations de déchiffrement lorsque le secret est chiffré à l'aide d'une clé KMS.

Associez les autorisations secretsmanager:GetSecretValue à l'identité IAM dont vous souhaitez récupérer le secret.

Exemple de politique :

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowGetSecretValue",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "arn:aws:secretsmanager:your-region:777788889999:secret:secretname-??????"
      ]
    },
    {
      "Sid": "AllowKMSDecrypt",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": [
        "arn:aws:kms:YOUR-REGION:777788889999:key/secretnameKMS_id"
      ]
    }
  ]
}

Puis, exécutez la commande get-secret-value suivante pour récupérer le secret en tant que valeur secrète source :

aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:YOUR-REGION:777788889999:secret:secretname --version-stage AWSCURRENT --region YOUR-REGION

Informations connexes

Accéder aux secrets AWS Secrets Manager à partir d’un autre compte

Comment accéder aux secrets des comptes AWS en y attachant les politiques basées sur les ressources

Comment puis-je résoudre les erreurs d'accès à la clé AWS KMS après avoir essayé de récupérer un secret Secrets Manager chiffré ?