Fazer referência a segredos do AWS Secrets Manager em parâmetros do Parameter Store - AWS Systems Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fazer referência a segredos do AWS Secrets Manager em parâmetros do Parameter Store

Secrets Manager O ajuda você a organizar e gerenciar dados de configuração importantes, como credenciais, senhas e chaves de licença. Parameter Store O está integrado ao para que você Secrets Manager possa recuperar Secrets Manager segredos ao usar outros serviços da AWS que já oferecem suporte a referências a Parameter Store parâmetros do . Esses serviços incluem o Amazon EC2, o Amazon Elastic Container Service, o AWS Lambda, o AWS CloudFormation, o AWS CodeBuild, o AWS CodeDeploy e outros recursos do Systems Manager Usando o Parameter Store para fazer referência a segredos do Secrets Manager, você cria um processo consistente e seguro para chamar e usar segredos e fazer referência a dados em seu código e em scripts de configuração.

Para obter mais informações sobre o Secrets Manager, consulte O que é o AWS Secrets Manager? no Guia do usuário do AWS Secrets Manager.

Importante

O Parameter Store funciona como um serviço de passagem para referências a segredos do Secrets Manager. O Parameter Store não retém dados ou metadados sobre segredos. A referência é stateless.

Restrictions

Observe as seguintes restrições ao usar o Parameter Store para fazer referência a segredos do Secrets Manager

  • Você só pode recuperar Secrets Manager segredos usando as ações de GetParameter API GetParameters e . As operações de modificação e as ações de API de consulta avançada, como DescribeParameters e GetParametersByPath , não são compatíveis com o Secrets Manager.

  • Você pode usar o AWS CLI AWS Tools para Windows PowerShell, o e o SDKs para recuperar um segredo usando o Parameter Store.

  • Quando você recupera um Secrets Manager segredo do Parameter Store, o nome do parâmetro deve começar com o seguinte caminho reservado: /aws/reference/secretsmanager/secret_ID_in_Secrets_Manager.

    Este é um exemplo: /aws/reference/secretsmanager/CFCreds1

  • O Parameter Store honra as políticas do IAM anexadas aos segredos do Secrets Manager Por exemplo, se o Usuário 1 não tiver acesso ao Segredo A, o Usuário 1 não poderá recuperar o Segredo A usando o Parameter Store.

  • Os parâmetros que fazem referência a segredos do Secrets Manager não podem usar os recursos de versionamento ou de histórico do Parameter Store

  • O Parameter Store honra os estágios de versão do Secrets Manager Se você fizer referência a um estágio de versão, ele poderá usar apenas letras, números, um ponto (.), um hífen (-) ou um sublinhado (_). Todos os outros símbolos especificados no estágio da versão provocam falha na referência.

Como fazer referência a um segredo do Secrets Manager usando o Parameter Store

O procedimento a seguir descreve como fazer referência a um Secrets Manager segredo do usando o Parameter Store APIs. O procedimento faz referência a outros procedimentos no Guia do usuário do AWS Secrets Manager.

nota

Antes de começar, verifique se você tem permissão para fazer referência a segredos Secrets Manager em parâmetros do Parameter Store Se você tiver privilégios de administrador no Secrets Manager e no Systems Manager, poderá fazer referência ou recuperar segredos usando o Parameter Store APIs. Se você fizer referência a um Secrets Manager segredo em um Parameter Store parâmetro do e não tiver permissão para acessar esse segredo, a referência falhará. Para obter mais informações, consulte Autenticação e controle de acesso para o AWS Secrets Manager no Guia do usuário do AWS Secrets Manager.

Para fazer referência a um segredo do Secrets Manager usando o Parameter Store

  1. Crie um segredo no Secrets Manager. Para obter mais informações, consulte Criação e gerenciamento de segredos com o AWS Secrets Manager.

  2. Faça referência a um segredo usando a AWS CLI, o AWS Tools para Windows PowerShell ou o SDK. Ao fazer referência a um segredo do Secrets Manager, o nome do parâmetro deve começar com o seguinte caminho reservado: /aws/reference/secretsmanager/. Especificando esse caminho, o Systems Manager sabe recuperar o segredo do Secrets Manager em vez do Parameter Store. Estes são alguns parâmetros de exemplo que fazem referência corretamente aos segredos do Secrets Manager

    • /aws/reference/secretsmanager/CFCreds1

    • /aws/reference/secretsmanager/DBPass

    Veja a seguir um exemplo de código Java que faz referência a uma chave de acesso e a uma chave secreta armazenadas no Secrets Manager. Esse exemplo de código define um cliente do Amazon DynamoDB O código recupera dados da configuração e credenciais do Parameter Store. Os dados da configuração são armazenados como um parâmetro de string no Parameter Store, e as credenciais são armazenadas no Secrets Manager. Embora os dados de configuração e as credenciais sejam armazenados em serviços separados, ambos os conjuntos de dados podem ser acessados no Parameter Store usando a GetParameter API do .

    /** * Initialize AWS System Manager Client with default credentials */ AWSSimpleSystemsManagement ssm = AWSSimpleSystemsManagementClientBuilder.defaultClient(); ... /** * Example method to launch DynamoDB client with credentials different from default * @return DynamoDB client */ AmazonDynamoDB getDynamoDbClient() { //Getting AWS credentials from Secrets manager using GetParameter BasicAWSCredentials differentAWSCreds = new BasicAWSCredentials( getParameter("/aws/reference/secretsmanager/access-key"), getParameter("/aws/reference/secretsmanager/secret-key")); //Initialize the DDB Client with different credentials final AmazonDynamoDB client = AmazonDynamoDBClient.builder() .withCredentials(new AWSStaticCredentialsProvider(differentAWSCreds)) .withRegion(getParameter("region")) //Getting config from Parameter Store .build(); return client; } /** * Helper method to retrieve SSM Parameter's value * @param parameterName identifier of the SSM Parameter * @return decrypted parameter value */ public GetParameterResult getParameter(String parameterName) { GetParameterRequest request = new GetParameterRequest(); request.setName(parameterName); request.setWithDecryption(true); return ssm.newGetParameterCall().call(request).getParameter().getValue(); }

    Estes são alguns exemplos da AWS CLI

    AWS CLI Exemplo 1: Referência usando o nome do segredo

    Linux
    aws ssm get-parameter \ --name /aws/reference/secretsmanager/s1-secret \ --with-decryption
    Windows
    aws ssm get-parameter ^ --name /aws/reference/secretsmanager/s1-secret ^ --with-decryption

    O comando retorna informações como as seguintes.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Value": "Fl*MEishm!al875",
            "Type": "SecureString",
            "LastModifiedDate": 2018-05-14T21:47:14.743Z,
            "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
            "SourceResult": 
                  "{
                       \"CreatedDate\": 1526334434.743,
                       \"Name\": \"s1-secret\",
                       \"VersionId\": \"aaabbbccc-1111-222-333-123456789\",
                       \"SecretString\": \"Fl*MEishm!al875\",
                       \"VersionStages\": [\"AWSCURRENT\"],
                       \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                   }"
          }
    }

    AWS CLI Exemplo 2: referência que inclui o ID da versão

    Linux
    aws ssm get-parameter \ --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 \ --with-decryption
    Windows
    aws ssm get-parameter ^ --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 ^ --with-decryption

    O comando retorna informações como as seguintes.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Value": "Fl*MEishm!al875",
            "Type": "SecureString",
            "LastModifiedDate": 2018-05-14T21:47:14.743Z,
            "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
            "SourceResult": 
                  "{
                       \"CreatedDate\": 1526334434.743,
                       \"Name\": \"s1-secret\",
                       \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                       \"SecretString\": \"Fl*MEishm!al875\",
                       \"VersionStages\": [\"AWSCURRENT\"],
                       \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                   }"
            "Selector": ":11111-aaa-bbb-ccc-123456789"
          }
    }
    

    AWS CLI Exemplo 3: referência que inclui o estágio da versão

    Linux
    aws ssm get-parameter \ --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT \ --with-decryption
    Windows
    aws ssm get-parameter ^ --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT ^ --with-decryption

    O comando retorna informações como as seguintes.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Value": "Fl*MEishm!al875",
            "Type": "SecureString",
            "LastModifiedDate": 2018-05-14T21:47:14.743Z,
            "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                    E18LRP",
            "SourceResult": 
                  "{
                       \"CreatedDate\": 1526334434.743,
                       \"Name\": \"s1-secret\",
                       \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                       \"SecretString\": \"Fl*MEishm!al875\",
                       \"VersionStages\": [\"AWSCURRENT\"],
                       \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                   }"
            "Selector": ":AWSCURRENT"
          }
    }