Parameter Store 파라미터에서 AWS Secrets Manager 암호 참조 - AWS Systems Manager

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Parameter Store 파라미터에서 AWS Secrets Manager 암호 참조

AWS Secrets Manager를 사용하면 자격 증명, 암호 및 라이선스 키와 같은 중요한 구성 데이터를 구성하고 관리할 수 있습니다.Parameter Store, 기능AWS Systems Manager다른 사용할 때 Secrets Manager 암호를 검색할 수 있도록 Secrets Manager 암호와 통합AWS에 대한 참조를 이미 지원하는Parameter Store파라미터. 이러한 서비스에는 Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS),AWS Lambda,AWS CloudFormation,AWS CodeBuild,AWS CodeDeploy및 기타 Systems Manager 기능을 사용할 수 있습니다. 를 사용하는 방법Parameter Store를 사용하면 코드 및 구성 스크립트에서 암호 및 참조 데이터를 호출하고 사용하는 일관되고 안전한 프로세스를 생성할 수 있습니다.

Secrets Manager에 대한 자세한 내용은 를 참조하십시오.란 무엇입니까?AWS Secrets Manager?AWS Secrets Manager사용 설명서.

Restrictions

를 사용할 때는 다음과 같은 제한 사항이 있습니다.Parameter Store를 사용하여 보안 Secrets Manager 참조합니다.

  • Secrets Manager 사용 하 여 검색할 수 있는GetParameterGetParametersAPI 작업을 선택합니다. 수정 작업 및 고급 쿼리 API 작업 (예:DescribeParametersGetParametersByPath는 Secrets Manager 대해 지원되지 않습니다.

  • 이AWS Command Line Interface(AWS CLI),AWS Tools for Windows PowerShell를 사용해 암호를 검색할 수 있는 SDKParameter Store.

  • 에서 Secrets Manager 암호를 검색할 때Parameter Store에서 이름이 반드시 예약된 경로인 /aws/reference/secretsmanager/secretsmanager//비밀번호_ID_비밀번호_매니저.

    단순 예시: /aws/reference/secretsmanager/CFCreds1

  • Parameter Store분류: 명예AWS Identity and Access Management(IAM) 정책을 보안 Secrets Manager 에 연결합니다. 예를 들어 사용자 1에게 암호 A에 대한 액세스 권한이 없으면 사용자 1은 Parameter Store를 사용하여 암호 A를 검색할 수 없습니다.

  • Secrets Manager 참조하는 파라미터는Parameter Store버전 관리 또는 히스토리 피처

  • Parameter Store는 보안 Secrets Manager 버전 단계를 준수합니다. 버전 단계를 참조하는 경우 문자, 숫자, 마침표 (.), 하이픈 (-) 또는 밑줄 (_) 을 사용합니다. 버전 단계에 그 밖의 모든 기호를 지정하면 참조가 실패하게 됩니다.

를 사용하여 Secrets Manager 암호를 참조하는 방법Parameter Store

다음 절차에서는 암호 Secrets Manager 사용하여 참조하는 방법에 대해 설명합니다.Parameter StoreAPI. 이 프로시저는 의 다른 절차를 참조하려면AWS Secrets Manager사용 설명서.

참고

시작하기 전에, Secrets Manager 참조할 권한이 있는지 확인하십시오.Parameter Store파라미터. 암호 관리자 및 Systems Manager 관리자 권한이 있으면 를 사용하여 암호를 검색할 수 있습니다.Parameter StoreAPI. Secrets Manager 비밀을 참조 하는 경우Parameter Store파라미터인 경우 해당 암호에 액세스할 권한이 없으면 참조가 실패합니다. 자세한 내용은 단원을 참조하십시오.에 대한 인증 및 액세스 제어AWS Secrets ManagerAWS Secrets Manager사용 설명서.

중요

Parameter Store는 암호 Secrets Manager 참조할 수 있는 통과 서비스로 사용됩니다.Parameter Store는 암호에 대한 데이터 또는 메타데이터를 보존하지 않습니다. 참조는 상태 비저장입니다.

를 사용하여 Secrets Manager 암호를 참조하려면Parameter Store

  1. 보안 암호 Secrets Manager 생성합니다. 자세한 내용은 단원을 참조하십시오.를 사용하여 보안 암호 생성 및 관리AWS Secrets Manager.

  2. AWS CLI, AWS Tools for Windows PowerShell 또는 SDK를 사용하여 암호를 참조합니다. 암호 Secrets Manager 참조할 때는 이름이 반드시 예약된 경로인 다음 경로인 /aws/reference/secretsmanager/. 이 경로를 지정하면 시스템 관리자가 아닌 암호 관리자에서 Secrets Manager 검색해야 한다는 것을 에서 알게 됩니다.Parameter Store. 다음은 Secrets Manager 암호를 올바르게 참조하는 몇 가지 예제 이름이며CFCreds1DBPass, 사용Parameter Store.

    • /aws/reference/secretsmanager/CFCreds1

    • /aws/reference/secretsmanager/DBPass

    다음은 보안 Secrets Manager 저장된 액세스 키와 보안 키를 참조하는 Java 코드 예제입니다. 이 코드 예제는 Amazon DynamoDB 클라이언트를 설정합니다. 이 코드는 Parameter Store에서 구성 데이터와 자격 증명을 검색합니다. 구성 데이터는 문자열 파라미터로 저장됩니다.Parameter Store및 자격 증명이 Secrets Manager 저장됩니다. 구성 데이터와 자격 증명이 별도의 서비스에 저장되지만 두 데이터 세트 모두Parameter Store사용GetParameterAPI.

    /** * Initialize 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(); }

    여기 몇 가지 AWS CLI 예제가 있습니다. 사용aws secretsmanager list-secrets명령을 사용하여 비밀의 이름을 찾을 수 있습니다.

    AWS CLI예제 1: 암호의 이름을 사용하여 참조

    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

    명령은 다음과 같은 정보를 반환합니다.

    {
        "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예제 2: 버전 ID를 포함하는 참조

    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

    명령은 다음과 같은 정보를 반환합니다.

    {
        "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예제 3: 버전 단계를 포함하는 참조

    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

    명령은 다음과 같은 정보를 반환합니다.

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