Riferimento ai segreti di AWS Secrets Manager mediante i parametri Parameter Store - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento ai segreti di AWS Secrets Manager mediante i parametri Parameter Store

AWS Secrets Manager consente di organizzare e gestire dati di configurazione importanti, quali credenziali, password e chiavi di licenza. Parameter Store, una funzionalità di AWS Systems Manager, è ora integrato con Secrets Manager, per cui è possibile recuperare i segreti Secrets Manager quando si utilizzano altri Servizi AWS che già supportano i riferimenti ai parametri Parameter Store. Questi servizi includono Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), AWS Lambda, AWS CloudFormation, AWS CodeBuild, AWS CodeDeploy e altre funzionalità di Systems Manager. Avvalendoti di Parameter Store per fare riferimento ai segreti di Secrets Manager, configura un processo coerente e sicuro per la chiamata e l'utilizzo di segreti e dati di riferimento in script di configurazione e codice.

Per ulteriori informazioni su Secrets Manager, consulta Informazioni su AWS Secrets Manager nella Guida per l'utente di AWS Secrets Manager.

Restrizioni

Nell'utilizzo di Parameter Store per fare riferimento ai segreti di Secrets Manager, tieni presenti le seguenti restrizioni:

  • È possibile recuperare i segreti di Secrets Manager solo tramite le operazioni API GetParameter e GetParameters. Le attività di modifica e le operazioni API avanzate di querying, come DescribeParameters e GetParametersByPath, non sono supportate per Secrets Manager.

  • Per recuperare un segreto con Parameter Store, si possono utilizzare AWS Command Line Interface (AWS CLI), AWS Tools for Windows PowerShell e le SDK.

  • Quando recuperi un segreto di Gestione dei segreti da Parameter Store, il nome del parametro deve iniziare con il seguente percorso riservato: /aws/reference/secretsmanager/secret-_ID.

    Ecco un esempio: /aws/reference/secretsmanager/CFCreds1

  • Parameter Store rispetta le policy (IAM) AWS Identity and Access Management collegate ai segreti di Secrets Manager. Se, ad esempio, non vi ha accesso, l'Utente 1 non può nemmeno recuperare il Segreto A tramite Parameter Store.

  • I parametri che fanno riferimento ai segreti di Secrets Manager non ammettono l'utilizzo di funzioni di cronologia o versioni multiple di Parameter Store.

  • Parameter Store rispetta le fasi delle versioni Secrets Manager. Nel caso di riferimento a una fase di versione, sono ammessi numeri, lettere, un punto (.), un trattino (-) o un trattino basso (_). Eventuali altri simboli specificati nella fase della versione comportano l'esito negativo del tentativo di riferimento.

Come fare riferimento a un segreto di Secrets Manager con Parameter Store

La procedura riportata di seguito illustra come fare riferimento a un segreto di Secrets Manager utilizzando API di Parameter Store. La procedura fa riferimento ad altre procedure riportate nella Guida per l'utente di AWS Secrets Manager.

Nota

Prima di iniziare, verifica di disporre dell'autorizzazione necessaria per fare riferimento a segreti di Secrets Manager nei parametri Parameter Store. Se si dispone delle autorizzazioni di amministratore in Secrets Manager e Systems Manager, è possibile fare riferimento ai segreti o recuperarli con API Parameter Store. Se si fa riferimento a un segreto di Secrets Manager in un parametro Parameter Store senza disporre dell'autorizzazione di accesso al segreto, il tentativo di riferimento ha esito negativo. Per ulteriori informazioni, consulta Autenticazione e controllo degli accessiAWS Secrets Manager nella Guida per l'utente di AWS Secrets Manager.

Importante

Parameter Store funge da servizio di trasferimento per i riferimenti a segreti di Secrets Manager. Parameter Store non conserva dati o metadati relativi ai segreti. Il riferimento è stateless.

Per fare riferimento a un segreto di Secrets Manager con Parameter Store
  1. Creazione di un segreto in Secrets Manager. Per ulteriori informazioni, consulta Creazione e gestione di segreti con AWS Secrets Manager.

  2. Puoi fare riferimento a un segreto con l'AWS CLI, AWS Tools for Windows PowerShell o la SDK. Quando si fa riferimento a un segreto di Secrets Manager, il nome del parametro deve iniziare con il seguente percorso riservato: /aws/reference/secretsmanager/. Una volta specificato questo percorso, Systems Manager è in condizione di recuperare il segreto da Secrets Manager invece che da Parameter Store. Ecco alcuni esempi di nomi che fanno riferimento correttamente ai segreti di Secrets Manager, CFCreds1 e DBPass, con Parameter Store.

    • /aws/reference/secretsmanager/CFCreds1

    • /aws/reference/secretsmanager/DBPass

    Ecco un esempio di codice Java che fa riferimento a una chiave di accesso e a una chiave segreta archiviate in Secrets Manager. Questo codice esemplificativo configura un client Amazon DynamoDB. Il codice recupera i dati di configurazione e le credenziali da Parameter Store. I dati di configurazione sono memorizzati come parametro di stringa in Parameter Store, mentre le credenziali risultano archiviate su Secrets Manager. Anche se archiviati in servizi diversi, entrambi i set di dati possono essere fruiti accedendo da Parameter Store, tramite l'API GetParameter.

    /** * Initialize Systems 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 DynamoDB client with different credentials final AmazonDynamoDB client = AmazonDynamoDBClient.builder() .withCredentials(new AWSStaticCredentialsProvider(differentAWSCreds)) .withRegion(getParameter("region")) //Getting configuration from Parameter Store .build(); return client; } /** * Helper method to retrieve parameter value * @param parameterName identifier of the 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(); }

    Di seguito sono riportati alcuni esempi di AWS CLI. Utilizza il comando aws secretsmanager list-secrets per trovare i nomi dei tuoi segreti.

    AWS CLI Esempio 1: riferimento con il nome del segreto

    Linux & macOS
    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

    Il comando restituisce informazioni simili alle seguenti.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Type": "SecureString",
            "Value": "Fl*MEishm!al875",
            "Version": 0,
            "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\"
                   }"
            "LastModifiedDate": 2018-05-14T21:47:14.743Z,
            "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
          }
    }

    AWS CLI Esempio 2: riferimento che include l'ID della versione

    Linux & macOS
    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

    Il comando restituisce informazioni simili alle seguenti.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Type": "SecureString",
            "Value": "Fl*MEishm!al875",
            "Version": 0,
            "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"
          }
            "LastModifiedDate": 2018-05-14T21:47:14.743Z,
            "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
    }
    

    AWS CLI Esempio 3: riferimento che include la fase della versione

    Linux & macOS
    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

    Il comando restituisce informazioni simili alle seguenti.

    {
        "Parameter": {
            "Name": "/aws/reference/secretsmanager/s1-secret",
            "Type": "SecureString",
            "Value": "Fl*MEishm!al875",
            "Version": 0,
            "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"
          }
          "LastModifiedDate": 2018-05-14T21:47:14.743Z,
          "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                    E18LRP",
    }