Salta al contenuto

Come posso condividere segreti di Secrets Manager tra account?

3 minuti di lettura
0

Desidero condividere il mio segreto di AWS Secrets Manager con un altro account AWS.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Devi creare e specificare una chiave del Servizio AWS di gestione delle chiavi (AWS KMS) personalizzata per condividere i segreti tra account. Non puoi utilizzare la chiave KMS predefinita quando condividi segreti tra account. La chiave KMS predefinita viene creata, gestita e utilizzata per tuo conto da un servizio AWS eseguito su AWS KMS. È unica per il tuo account e la tua Regione AWS e puoi utilizzarla solamente con il servizio che l'ha creata. Per ulteriori informazioni, consulta Chiavi AWS KMS.

Configura l'account che possiede il segreto

Se non hai un segreto, crealo in Secrets Manager. Assicurati di specificare il nome della risorsa Amazon (ARN) nel parametro ID chiave KMS per il segreto.

Se hai un segreto esistente che utilizza un alias, modificalo. Assicurati di specificare l'ARN della chiave KMS nel parametro ID chiave KMS per il segreto. Devi utilizzare l'ARN della chiave KMS completo per accedere a un segreto da un altro account.

Importante: nelle seguenti policy, sostituisci Principal ARN con l'ARN del tuo account di destinazione, SecretARN con l'ARN del tuo account di origine e KMS key ARN con l'ARN del tuo account di origine. Sostituisci anche YOUR-REGION con la tua Regione.

Aggiungi la seguente istruzione alla policy chiave, quindi sostituisci gli esempi di valore con i tuoi valori:

{  "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??????"
    }
  }
}

Quindi collega una policy basata sulle risorse per concedere al ruolo AWS Identity and Access Management (AWS IAM) le autorizzazioni per accedere al segreto.

Esempio di policy basata sulle risorse del segreto:

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

Configura le autorizzazioni nell'altro account che ha bisogno del segreto

L'utente IAM deve avere l'autorizzazione secretsmanager:GetSecretValue per recuperare il segreto. Inoltre, l'utente IAM deve disporre delle autorizzazioni di decrittografia quando il segreto è crittografato con una chiave KMS.

Collega le autorizzazioni secretsmanager:GetSecretValue all'identità IAM di cui desideri recuperare il segreto.

Esempio di policy:

{  "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"
      ]
    }
  ]
}

Quindi esegui questo comando get-secret-value per recuperare il segreto come valore del segreto dell'origine:

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

Informazioni correlate

Accedi ai segreti di AWS Secrets Manager da un altro account

How to access secrets across AWS accounts by attaching resource-based policies (Come accedere ai segreti da vari account AWS collegando policy basate sulle risorse)

Come posso risolvere gli errori di accesso alla chiave AWS KMS dopo aver provato a recuperare un segreto crittografato di Secrets Manager?