를 사용한 Secrets Manager 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

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

를 사용한 Secrets Manager 예제 AWS CLI

다음 코드 예제에서는 Secrets Manager AWS Command Line Interface 와 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 batch-get-secret-value을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 이름으로 나열된 보안 암호 그룹의 보안 암호 값을 검색하려면

다음 batch-get-secret-value 예제에서는 세 개의 암호에 대한 암호 값 암호를 가져옵니다.

aws secretsmanager batch-get-secret-value \ --secret-id-list MySecret1 MySecret2 MySecret3

출력:

{ "SecretValues": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret1-a1b2c3", "Name": "MySecret1", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SecretString": "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1523477145.729" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret2-a1b2c3", "Name": "MySecret2", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "SecretString": "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1673477781.275" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret3-a1b2c3", "Name": "MySecret3", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", "SecretString": "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1373477721.124" } ], "Errors": [] }

자세한 내용은 Secrets Manager 사용 설명서의 배치에서 보안 암호 그룹 검색을 참조하세요. AWS

예제 2: 필터로 선택한 보안 암호 그룹의 보안 암호 값을 검색하려면

다음 batch-get-secret-value 예제에서는 MySecret 이름에가 있는 계정의 보안 암호 값 암호를 가져옵니다. 이름의 필터링은 대소문자를 구분합니다.

aws secretsmanager batch-get-secret-value \ --filters Key="name",Values="MySecret"

출력:

{ "SecretValues": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret1-a1b2c3", "Name": "MySecret1", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "SecretString": "{\"username\":\"diego_ramirez\",\"password\":\"EXAMPLE-PASSWORD\",\"engine\":\"mysql\",\"host\":\"secretsmanagertutorial.cluster.us-west-2.rds.amazonaws.com\",\"port\":3306,\"dbClusterIdentifier\":\"secretsmanagertutorial\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1523477145.729" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret2-a1b2c3", "Name": "MySecret2", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "SecretString": "{\"username\":\"akua_mansa\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1673477781.275" }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret3-a1b2c3", "Name": "MySecret3", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEccccc", "SecretString": "{\"username\":\"jie_liu\",\"password\":\"EXAMPLE-PASSWORD\"", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": "1373477721.124" } ], "Errors": [] }

자세한 내용은 Secrets Manager 사용 설명서의 배치에서 보안 암호 그룹 검색을 참조하세요. AWS

다음 코드 예시에서는 cancel-rotate-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호의 자동 교체를 끄려면

다음 cancel-rotate-secret 예제에서는 보안 암호의 자동 교체를 끕니다. 교체를 재개하려면를 호출합니다rotate-secret.

aws secretsmanager cancel-rotate-secret \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서암호 교체를 참조하세요.

다음 코드 예시에서는 create-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: JSON 파일의 보안 인증 정보에서 보안 암호를 생성하려면

다음 create-secret 예시에서는 파일의 보안 인증 정보를 사용하여 보안 암호를 만듭니다. 자세한 내용은 AWS CLI 사용 설명서파일에서 Loading AWS CLI 파라미터를 참조하세요.

aws secretsmanager create-secret \ --name MyTestSecret \ --secret-string file://mycreds.json

mycreds.json의 콘텐츠:

{ "engine": "mysql", "username": "saanvis", "password": "EXAMPLE-PASSWORD", "host": "my-database-endpoint.us-west-2.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306" }

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 생성을 참조하세요.

예제 2: 보안 암호 생성

다음 create-secret 예시에서는 두 개의 키-값 쌍으로 보안 암호를 만듭니다. 명령 셸에 명령을 입력하면 명령 기록이 액세스되거나 유틸리티가 명령 파라미터에 액세스할 위험이 있습니다. 명령에 보안 암호 값이 포함된 경우 이는 문제가 됩니다. 자세한 내용은 Secrets Manager 사용 설명서의 명령줄 도구를 사용하여 보안 암호를 저장하는 위험 완화를 참조하세요.

aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 생성을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateSecret를 참조하세요.

다음 코드 예시에서는 delete-resource-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호에 연결된 리소스 기반 정책을 삭제하려면

다음 delete-resource-policy 예시에서는 보안 암호에 연결된 리소스 기반 정책을 삭제합니다.

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서인증 및 액세스 제어를 참조하세요.

다음 코드 예시에서는 delete-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 보안 암호를 삭제하는 방법

다음 delete-secret 예시에서는 보안 암호를 삭제합니다. DeletionDate 응답 필드의 날짜 및 시간까지 restore-secret으로 보안 암호를 복구할 수 있습니다. 다른 리전에 복제된 보안 암호를 삭제하려면 먼저 remove-regions-from-replication(으)로 해당 복제본을 삭제한 다음 delete-secret을(를) 호출합니다.

aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --recovery-window-in-days 7

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "DeletionDate": 1524085349.095 }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 삭제를 참조하세요.

예 2: 보안 암호를 즉시 삭제하는 방법

다음 delete-secret 예시는 복구 기간 없이 즉시 보안 암호를 삭제합니다. 이러한 보안 암호는 복구할 수 없습니다.

aws secretsmanager delete-secret \ --secret-id MyTestSecret \ --force-delete-without-recovery

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "DeletionDate": 1508750180.309 }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 삭제를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DeleteSecret를 참조하세요.

다음 코드 예시에서는 describe-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호의 세부 정보를 검색하는 방법

다음 describe-secret 예시에서는 보안 암호에 대한 세부 정보를 보여줍니다.

aws secretsmanager describe-secret \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-Ca8JGt", "Name": "MyTestSecret", "Description": "My test secret", "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "RotationEnabled": true, "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestRotationLambda", "RotationRules": { "AutomaticallyAfterDays": 2, "Duration": "2h", "ScheduleExpression": "cron(0 16 1,15 * ? *)" }, "LastRotatedDate": 1525747253.72, "LastChangedDate": 1523477145.729, "LastAccessedDate": 1524572133.25, "Tags": [ { "Key": "SecondTag", "Value": "AnotherValue" }, { "Key": "FirstTag", "Value": "SomeValue" } ], "VersionIdsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSPREVIOUS" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222": [ "AWSCURRENT" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333": [ "AWSPENDING" ] }, "CreatedDate": 1521534252.66, "PrimaryRegion": "us-west-2", "ReplicationStatus": [ { "Region": "eu-west-3", "KmsKeyId": "alias/aws/secretsmanager", "Status": "InSync", "StatusMessage": "Replication succeeded" } ] }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DescribeSecret를 참조하세요.

다음 코드 예시에서는 get-random-password을 사용하는 방법을 보여 줍니다.

AWS CLI

무작위 암호를 생성하려면

다음 get-random-password 예제에서는 대문자, 소문자, 숫자 및 구두점이 하나 이상 포함된 20자 길이의 무작위 암호를 생성합니다.

aws secretsmanager get-random-password \ --require-each-included-type \ --password-length 20

출력:

{ "RandomPassword": "EXAMPLE-PASSWORD" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 생성 및 관리를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetRandomPassword를 참조하세요.

다음 코드 예시에서는 get-resource-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호에 연결된 리소스 기반 정책을 검색하려면

다음 get-resource-policy 예시에서는 보안 암호에 연결된 리소스 기반 정책을 검색합니다.

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "ResourcePolicy": "{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n \"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\": \"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}" }

자세한 내용은 Secrets Manager 사용 설명서인증 및 액세스 제어를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetResourcePolicy를 참조하세요.

다음 코드 예시에서는 get-secret-value을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 보안 암호의 암호화된 보안 암호 값을 검색하는 방법

다음 get-secret-value 예에서는 현재 보안 암호 값을 가져옵니다.

aws secretsmanager get-secret-value \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "SecretString": "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1523477145.713 }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 검색을 참조하세요.

예 2: 이전 보안 암호 값 검색

다음 get-secret-value 예시에서는 이전 보안 암호 값을 가져옵니다.

aws secretsmanager get-secret-value \ --secret-id MyTestSecret --version-stage AWSPREVIOUS

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "SecretString": "{\"user\":\"diegor\",\"password\":\"PREVIOUS-EXAMPLE-PASSWORD\"}", "VersionStages": [ "AWSPREVIOUS" ], "CreatedDate": 1523477145.713 }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 검색을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetSecretValue를 참조하세요.

다음 코드 예시에서는 list-secret-version-ids을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호와 연결된 모든 보안 암호 버전을 나열하려면

다음 list-secret-version-ids 예제에서는 보안 암호의 모든 버전 목록을 가져옵니다.

aws secretsmanager list-secret-version-ids \ --secret-id MyTestSecret

출력:

{ "Versions": [ { "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSPREVIOUS" ], "LastAccessedDate": 1523477145.713, "CreatedDate": 1523477145.713 }, { "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "VersionStages": [ "AWSCURRENT" ], "LastAccessedDate": 1523477145.713, "CreatedDate": 1523486221.391 }, { "CreatedDate": 1.51197446236E9, "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333;" } ], "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서버전을 참조하세요.

다음 코드 예시에서는 list-secrets을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 계정의 보안 암호를 나열하는 방법

다음 list-secrets 예시에서는 계정에 있는 보안 암호 목록을 가져옵니다.

aws secretsmanager list-secrets

출력:

{ "SecretList": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "LastChangedDate": 1523477145.729, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSCURRENT" ] } }, { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:AnotherSecret-d4e5f6", "Name": "AnotherSecret", "LastChangedDate": 1523482025.685, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222": [ "AWSCURRENT" ] } } ] }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 찾기를 참조하세요.

예 1: 계정의 보안 암호 목록을 필터링하는 방법

다음 list-secrets 예시에서는 계정에서 이름에 Test가 있는 보안 암호 목록을 가져옵니다. 이름의 필터링은 대소문자를 구분합니다.

aws secretsmanager list-secrets \ --filter Key="name",Values="Test"

출력:

{ "SecretList": [ { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "LastChangedDate": 1523477145.729, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111": [ "AWSCURRENT" ] } } ] }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 찾기를 참조하세요.

예 3: 다른 서비스에서 관리하는 계정의 보안 암호를 나열하는 방법

다음 list-secrets 예제에서는 Amazon RDS에서 관리하는 계정의 보안 암호를 반환합니다.

aws secretsmanager list-secrets \ --filter Key="owning-service",Values="rds"

출력:

{ "SecretList": [ { "Name": "rds!cluster-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Tags": [ { "Value": "arn:aws:rds:us-west-2:123456789012:cluster:database-1", "Key": "aws:rds:primaryDBClusterArn" }, { "Value": "rds", "Key": "aws:secretsmanager:owningService" } ], "RotationRules": { "AutomaticallyAfterDays": 1 }, "LastChangedDate": 1673477781.275, "LastRotatedDate": 1673477781.26, "SecretVersionsToStages": { "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa": [ "AWSPREVIOUS" ], "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb": [ "AWSCURRENT", "AWSPENDING" ] }, "OwningService": "rds", "RotationEnabled": true, "CreatedDate": 1673467300.7, "LastAccessedDate": 1673395200.0, "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:rds!cluster-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111-a1b2c3", "Description": "Secret associated with primary RDS DB cluster: arn:aws:rds:us-west-2:123456789012:cluster:database-1" } ] }

자세한 내용은 Secrets Manager 사용 설명서의 다른 서비스에서 관리하는 보안 암호를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListSecrets를 참조하세요.

다음 코드 예시에서는 put-resource-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호에 리소스 기반 정책을 추가하려면

다음 put-resource-policy 예시에서는 보안 암호에 사용 권한 정책을 추가하여 해당 정책이 암호에 대한 광범위한 액세스를 제공하지 않는지 먼저 확인합니다. 파일에서 해당 정책을 읽습니다. 자세한 내용은 AWS CLI 사용 설명서파일에서 Loading AWS CLI 파라미터를 참조하세요.

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

mypolicy.json의 콘텐츠:

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

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서보안 암호에 권한 정책 연결을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutResourcePolicy를 참조하세요.

다음 코드 예시에서는 put-secret-value을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 보안 암호에 새 암호 값을 저장하는 방법

다음 put-secret-value 예시에서는 두 개의 키-값 페어로 새 버전의 보안 암호를 만듭니다.

aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSCURRENT" ] }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 수정을 참조하세요.

예제 2: JSON 파일에 자격 증명의 새 보안 암호 값 저장

다음 put-secret-value 예에서는 파일로 된 보안 인증 정보로 새 버전의 보안 암호를 만듭니다. 자세한 내용은 AWS CLI 사용 설명서파일에서 Loading AWS CLI 파라미터를 참조하세요.

aws secretsmanager put-secret-value \ --secret-id MyTestSecret \ --secret-string file://mycreds.json

mycreds.json의 콘텐츠:

{ "engine": "mysql", "username": "saanvis", "password": "EXAMPLE-PASSWORD", "host": "my-database-endpoint.us-west-2.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306" }

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "VersionStages": [ "AWSCURRENT" ] }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 수정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutSecretValue를 참조하세요.

다음 코드 예시에서는 remove-regions-from-replication을 사용하는 방법을 보여 줍니다.

AWS CLI

복제본 보안 암호를 삭제하려면

다음 remove-regions-from-replication 예시에서는 eu-west-3의 복제 보안 암호를 삭제합니다. 다른 리전에 복제된 기본 보안 암호를 삭제하려면 먼저 복제본을 삭제한 다음 delete-secret을(를) 호출합니다.

aws secretsmanager remove-regions-from-replication \ --secret-id MyTestSecret \ --remove-replica-regions eu-west-3

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "ReplicationStatus": [] }

자세한 내용은 Secrets Manager 사용 설명서복제본 보안 암호 삭제를 참조하세요.

다음 코드 예시에서는 replicate-secret-to-regions을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호를 다른 리전에 복제하려면

다음 replicate-secret-to-regions 예시에서는 eu-west-3으로 보안 암호를 복제합니다. 복제본은 AWS 관리형 키 로 암호화됩니다aws/secretsmanager.

aws secretsmanager replicate-secret-to-regions \ --secret-id MyTestSecret \ --add-replica-regions Region=eu-west-3

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-1a2b3c", "ReplicationStatus": [ { "Region": "eu-west-3", "KmsKeyId": "alias/aws/secretsmanager", "Status": "InProgress" } ] }

자세한 내용은 Secrets Manager 사용 설명서의 다른 리전에 보안 암호 복제를 참조하세요.

다음 코드 예시에서는 restore-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

이전에 삭제한 보안 암호를 복원하려면

다음 restore-secret 예시에서는 이전에 삭제가 예정된 보안 암호를 복원합니다.

aws secretsmanager restore-secret \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 삭제를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조RestoreSecret를 참조하세요.

다음 코드 예시에서는 rotate-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 보안 암호의 자동 교체를 구성하고 시작하려면

다음 rotate-secret 예제에서는 보안 암호의 자동 교체를 구성하고 시작합니다. Secrets Manager는 보안 암호를 즉시 한 번 교체한 다음 2시간 간격으로 8시간마다 교체합니다. 출력은 교체로 생성된 새 보안 암호 버전의 VersionId를 보여줍니다.

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:1234566789012:function:SecretsManagerTestRotationLambda \ --rotation-rules "{\"ScheduleExpression\": \"cron(0 8/8 * * ? *)\", \"Duration\": \"2h\"}"

출력:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

자세한 내용은 Secrets Manager 사용 설명서의 암호 교체를 참조하세요.

예제 2: 교체 간격에서 자동 교체를 구성하고 시작하려면

다음 rotate-secret 예제에서는 보안 암호의 자동 교체를 구성하고 시작합니다. Secrets Manager는 보안 암호를 즉시 한 번 교체한 다음 10일마다 교체합니다. 출력은 교체로 생성된 새 보안 암호 버전의 VersionId를 보여줍니다.

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:1234566789012:function:SecretsManagerTestRotationLambda \ --rotation-rules "{\"ScheduleExpression\": \"rate(10 days)\"}"

출력:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

자세한 내용은 Secrets Manager 사용 설명서의 암호 교체를 참조하세요.

예제 3: 보안 암호를 즉시 교체하는 방법

다음 rotate-secret 예에서는 즉시 교체를 시작합니다. 출력은 교체로 생성된 새 보안 암호 버전의 VersionId를 보여줍니다. 보안 암호에 교체가 미리 구성되어 있어야 합니다.

aws secretsmanager rotate-secret \ --secret-id MyTestDatabaseSecret

출력:

{ "ARN": "aws:arn:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", "Name": "MyTestDatabaseSecret", "VersionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

자세한 내용은 Secrets Manager 사용 설명서의 암호 교체를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조RotateSecret를 참조하세요.

다음 코드 예시에서는 stop-replication-to-replica을 사용하는 방법을 보여 줍니다.

AWS CLI

복제본 암호를 기본 암호로 승격하려면

다음 stop-replication-to-replica 예시에서는 복제 암호와 기본 암호 간의 링크를 제거합니다. 복제 보안 암호는 복제본 리전의 기본 보안 암호로 승격됩니다. 복제 리전 내에서 stop-replication-to-replica을(를) 호출해야 합니다.

aws secretsmanager stop-replication-to-replica \ --secret-id MyTestSecret

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3" }

자세한 내용은 Secrets Manager 사용 설명서복제본 보안 암호 승격을 참조하세요.

다음 코드 예시에서는 tag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 보안 암호에 태그를 추가하려면

다음 예시에서는 간편 구문으로 태그를 연결하는 방법을 보여줍니다.

aws secretsmanager tag-resource \ --secret-id MyTestSecret \ --tags Key=FirstTag,Value=FirstValue

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 태그 지정을 참조하세요.

예제 2: 보안 암호에 여러 태그를 추가하려면

다음 tag-resource 예시에서는 두 개의 키-값 태그를 보안 암호에 연결합니다.

aws secretsmanager tag-resource \ --secret-id MyTestSecret \ --tags '[{"Key": "FirstTag", "Value": "FirstValue"}, {"Key": "SecondTag", "Value": "SecondValue"}]'

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조TagResource를 참조하세요.

다음 코드 예시에서는 untag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

보안 암호에서 태그를 제거하려면

다음 untag-resource 예시에서는 보안 암호에서 두 개의 태그를 제거합니다. 각 태그의 키와 값이 모두 제거됩니다.

aws secretsmanager untag-resource \ --secret-id MyTestSecret \ --tag-keys '[ "FirstTag", "SecondTag"]'

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 태그 지정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UntagResource를 참조하세요.

다음 코드 예시에서는 update-secret-version-stage을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 보안 암호를 이전 버전으로 되돌리려면

다음 update-secret-version-stage 예제에서는 AWS CURRENT 스테이징 레이블을 이전 버전의 보안 암호로 이동하고, 보안 암호를 이전 버전으로 되돌립니다. 이전 버전의 ID를 찾으려면를 사용합니다list-secret-version-ids. 이 예제에서 AWS CURRENT 레이블이 있는 버전은 a1b2c3d4-5678-90ab-cdef-EXAMPLE11111이고 AWS PREVIOUS 레이블이 있는 버전은 a1b2c3d4-5678-90ab-cdef-EXAMPLE22222입니다. 이 예제에서는 AWS CURRENT 레이블을 버전 11111에서 22222로 이동합니다. AWS CURRENT 레이블이 버전에서 제거되므로는 update-secret-version-stage 자동으로 AWS PREVIOUS 레이블을 해당 버전(11111)으로 이동합니다. 그 효과는 AWS CURRENT 및 AWS PREVIOUS 버전이 교체된다는 것입니다.

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage AWSCURRENT \ --move-to-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --remove-from-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서버전을 참조하세요.

예제 2: 보안 암호 버전에 연결된 스테이징 레이블을 추가하려면

다음 update-secret-version-stage 예제에서는 보안 암호 버전에 스테이징 레이블을 추가합니다. 영향을 받는 버전의 VersionStages 응답 필드를 실행list-secret-version-ids하고 확인하여 결과를 검토할 수 있습니다.

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage STAGINGLABEL1 \ --move-to-version-id EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서버전을 참조하세요.

예제 3: 보안 암호 버전에 연결된 스테이징 레이블 삭제

다음 update-secret-version-stage 예제에서는 보안 암호 버전에 연결된 스테이징 레이블을 삭제합니다. 영향을 받는 버전의 VersionStages 응답 필드를 실행list-secret-version-ids하고 확인하여 결과를 검토할 수 있습니다.

aws secretsmanager update-secret-version-stage \ --secret-id MyTestSecret \ --version-stage STAGINGLABEL1 \ --remove-from-version-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서버전을 참조하세요.

다음 코드 예시에서는 update-secret을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 보안 암호의 설명을 업데이트하는 방법

다음 update-secret 예에서는 보안 암호에 대한 설명을 업데이트합니다.

aws secretsmanager update-secret \ --secret-id MyTestSecret \ --description "This is a new description for the secret."

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 수정을 참조하세요.

예 2: 보안 암호와 연결된 암호화 키를 업데이트하는 방법

다음 update-secret 예제에서는 보안 암호 값을 암호화하는 데 사용되는 KMS 키를 업데이트합니다. KMS 키는 보안 암호와 동일한 리전에 있어야 합니다.

aws secretsmanager update-secret \ --secret-id MyTestSecret \ --kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

출력:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestSecret-a1b2c3", "Name": "MyTestSecret" }

자세한 내용은 Secrets Manager 사용 설명서의 보안 암호 수정을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UpdateSecret를 참조하세요.

다음 코드 예시에서는 validate-resource-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스 정책을 검증하려면

다음 validate-resource-policy 예제에서는 리소스 정책이 보안 암호에 대한 광범위한 액세스 권한을 부여하지 않는지 확인합니다. 정책은 디스크의 파일에서 읽습니다. 자세한 내용은 AWS CLI 사용 설명서파일에서 Loading AWS CLI 파라미터를 참조하세요.

aws secretsmanager validate-resource-policy \ --resource-policy file://mypolicy.json

mypolicy.json의 콘텐츠:

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

출력:

{ "PolicyValidationPassed": true, "ValidationErrors": [] }

자세한 내용은 Secrets Manager 사용 설명서의 Secrets Manager에 대한 권한 참조를 참조하세요.