Ir para o conteúdo

How do I share Secrets Manager secrets between accounts? (Como faço para compartilhar segredos do Secrets Manager entre contas?)

3 minuto de leitura
0

Quero compartilhar meu segredo do AWS Secrets Manager com outra conta da AWS.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Você deve criar e especificar uma chave personalizada do AWS Key Management Service (AWS KMS) para compartilhar segredos entre contas. Não é possível usar a chave KMS padrão ao compartilhar segredos entre contas. A chave padrão do KMS é criada, gerenciada e usada em seu nome por um serviço da AWS executado no AWS KMS. Ele é exclusivo da sua conta e da região da AWS, e só é possível usá-lo com o serviço que o criou. Para obter mais informações, consulte chaves do AWS KMS.

Configure a conta que possui o segredo

Se você não tiver um segredo, crie um segredo do Secrets Manager. Certifique-se de especificar o nome do recurso da Amazon (ARN) no parâmetro de ID da chave KMS para o segredo.

Se você tiver um segredo existente que usa um alias, modifique o segredo. Certifique-se de especificar o ARN da chave KMS no parâmetro ID da chave KMS para o segredo. Você deve usar o ARN completo da chave KMS para acessar um segredo de outra conta.

Importante: nas políticas a seguir, substitua o ARN Principal pelo ARN da sua conta de destino, o SecretARN pelo ARN da sua conta de origem e o ARN da chave KMS pelo ARN da sua conta de origem. Também substitua YOUR-REGION pela sua região.

Adicione a seguinte declaração à política de chaves e, em seguida, substitua os valores de exemplo pelos seus valores:

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

Em seguida, anexe uma política baseada em recursos para conceder ao perfil do AWS Identity and Access Management (AWS IAM) permissões para acessar o segredo.

Exemplo de política secreta baseada em recursos:

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

Configure as permissões na outra conta que precisa do segredo

O usuário do IAM precisa ter a permissão secretsmanager:GetSecretValue para recuperar o segredo. Além disso, o usuário do IAM precisa ter permissões de descriptografia quando o segredo é criptografado com uma chave KMS.

Anexe as permissões secretsmanager:GetSecretValue à identidade do IAM que você deseja recuperar o segredo.

Exemplo de política:

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

Em seguida, execute o seguinte comando get-secret-value para recuperar o segredo como o valor secreto de origem:

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

Informações relacionadas

Acessar os segredos do AWS Secrets Manager de outra conta

How to access secrets across AWS accounts by attaching resource-based policies (Como acessar segredos em todas as contas da AWS anexando políticas baseadas em recursos)

Como resolvo erros de acesso à chave do AWS KMS depois de tentar recuperar um segredo criptografado do Secrets Manager?