암호화 키를 업데이트한 후에 다른 KMS 계정에서 AWS Secrets Manager 보안 암호에 액세스할 수 없고 오류 메시지가 나타납니다. 이 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 7월 2일

AWS Secrets Manager 보안 암호를 검색하거나 액세스하려고 했지만 다음과 비슷한 오류 메시지를 수신했습니다.

"Access to KMS is not allowed", "InternalFailure", 또는 "An unknown error occurred".  

간략한 설명

Secrets Manager 보안 암호와 연결된 암호화 키를 변경하면 새 암호 키로 보안 암호의 이전 버전을 다시 암호화하지 않습니다. 즉, “교차 계정”이라고 하는 외부 계정의 암호화된 키 값이 업데이트되지 않기 때문에 이 계정에서 키에 액세스할 수 없습니다. 보안 암호 값을 검색하려면 수정된 AWS Key Management Service(AWS KMS) 키를 사용하여 보안 암호를 다시 암호화해야 합니다. 자세한 내용은 보안 암호의 암호화 및 복호화를 참조하십시오.

해결 방법

다음 지침에 따라 암호화 키를 다시 암호화합니다.

AWS Management Console

1.    Secrets Manager 콘솔을 여십시오.

2.    [Secret name]에서 보안 암호를 선택합니다.

3.    [Secret value]에서 [Retrieve secret value], [Edit]를 선택한 다음 [Save]를 선택합니다.

사용자는 ""Your secret value has been successfully edited."라는 메시지를 수신합니다.

AWS 명령줄 인터페이스(AWS CLI)

1.    creds.json이라는 JSON 파일을 생성합니다. 이 예제에서 보안 암호 값으로 {"CrossAccount":" DefaultEncryption"}을 사용합니다.

$ cat creds.json 
{"CrossAccount":"DefaultEncryption"}

2.    AWS CLI update-secret 명령을 실행하여 다음과 유사한 암호화 키를 다시 암호화합니다.

$ aws secretsmanager update-secret --secret-id arn:aws:secretsmanager:us-east-1:123456789012:secret:cross-account --secret-string file://creds.json
    {
    "ARN": "arn:aws:secretsmanager:us-east-1:123456789012:cross-account",
    "Name": "cross-account",
    "VersionId": "f68246e8-1cfb-4c3b-952b-17c9298d3462"
    }

3.    다음과 유사한 AWS CLI 명령 [get-secret-value]을 실행합니다.  

$ aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-east-1:123456789012:secret:cross-account --version-stage AWSCURRENT --profile cross-account-user --region us-east-1 --query SecretString --output text

    {"CrossAccount":"DefaultEncryption"}