IAM 사용자로부터 Lambda 함수의 환경 변수와 암호화되지 않은 텍스트를 숨기려면 어떻게 해야 하나요?

2분 분량
0

AWS Lambda 함수에 액세스할 수 있는 AWS Identity and Access Management(IAM) 사용자가 환경 변수와 암호화되지 않은 텍스트를 볼 수 없도록 설정하고 싶습니다. 어떻게 해야 하나요?

해결 방법

참고: 다음 해결 방법은 Lambda 콘솔Lambda API에서만 IAM 자격 증명Lambda 함수의 환경 변수를 볼 수 없도록 설정합니다. IAM 자격 증명이 함수의 코드를 사용하여 복호화된 환경 변수에 액세스하거나 환경 변수 값을 Amazon CloudWatch Logs로 출력하는 것을 방지하지 않습니다.

IAM 자격 증명이 Lambda 환경 변수의 암호, 키 또는 기타 중요한 정보에 액세스하지 못하도록 하려면 다음을 수행합니다.

AWS Key Management Service(AWS KMS) 고객 관리형 키를 사용하여 환경 변수를 암호화합니다. KMS 키를 설정하려면 환경 변수 보안 설정의 지침을 따릅니다.

중요: 액세스가 필요하지 않은 IAM 자격 증명에 대한 액세스를 정책이 거부하도록 KMS 키의 키 정책을 편집해야 합니다.

Lambda 환경 변수를 볼 수 있는 특정 IAM 사용자 권한을 거부하는 KMS 키 정책 예시

참고: arn:aws:iam::1234567890:User1DeniedAccessarn:aws:iam::1234567890:User2DeniedAccess를 액세스를 거부하고자 하는 IAM 자격 증명의 Amazon 리소스 이름(ARN)으로 대체합니다. 필요에 따라 키 정책에 IAM ARN을 추가할 수 있습니다.

{
    "Id": "MyCustomKey",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Deny IAM users permission to see Lambda environment variables",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::1234567890:User1DeniedAccess",
                    "arn:aws:iam::1234567890:User2DeniedAccess"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}

거부된 IAM 사용자가 다음과 유사한 함수의 환경 변수를 보려고 하면 오류 메시지가 나타납니다.

"Lambda was unable to decrypt your environment variables because the KMS access was denied. Please check your KMS permissions. KMS Exception: AccessDeniedException"

관련 정보

키 생성

AWS Lambda 권한

AWS 공식
AWS 공식업데이트됨 3년 전