Lambda 코드에 필요한 것만 허용
가장 좋은 방법은 최소 권한 권한을 따르는 것이지만 개발 단계에 있을 때 여러 가지 다른 항목을 테스트하고 결국 너무 많은 권한을 갖게 되는 경우가 많습니다.
Lambda의 권한 이해
AWS Lambda 함수 콘솔에서 Lambda 함수에 필요한 권한을 보고 관리할 수 있습니다. 이는 구성 탭 아래의 권한 탭에서 사용할 수 있습니다. 이 하이퍼링크는 다양한 권한을 수정할 수 있는 IAM 역할에 연결됩니다.
AWS Lambda 기능 콘솔은 작업 및 리소스 요약과 함께 리소스 기반 권한 개요를 제공합니다. 이를 통해 이 Lambda 함수가 Amazon CloudWatch 로그 그룹을 생성할 수 있음을 이해할 수 있습니다.
권한 탭은 이 특정 Lambda 함수를 트리거할 수 있는 다른 소스에 대한 가시성을 제공합니다. Lambda 함수 트리거의 소스가 SNS인 경우 SNS 주제의
lambda:InvokeFunction
로 AWS:SourceArn
작업을 허용하는 리소스 정책 문서를 볼 수 있습니다.최소 권한 권한이 필요한 이유
과거에 받았던 몇 가지 질문은 다음과 같습니다.
You have already access controlled your IAM users, why another level of access control for Lambda functions?
합법적인 질문처럼 들리지만 실제로는 최소 권한 자체의 개념에 대한 이해 부족입니다. 음, 수동으로 수행되거나 IAM 사용자 수준 권한이 작동하는 콘솔에서 볼 수 있는 특정 작업이 있습니다. 그러나 AWS SDK 또는 Lambda 트리거 또는 Lambda 대상에 대한 다른 소스를 사용하여 프로그래밍 방식으로 AWS Lambda Functions에서 다른 AWS 서비스 또는 리소스에 액세스하는 데 IAM 역할이 사용되는 경우. 이 작업이 완료되면 특정 Lambda 함수에 대한 IAM 역할이 실행됩니다!
이 시나리오에서 IAM 사용자에게 특정 SNS 주제를 삭제할 수 있는 권한이 없고 Lambda 함수의 IAM 역할에
Allow: sns:*
의 일반 권한이 있는 경우 IAM 사용자는 AWS SDK를 사용하여 다음을 수행할 수 있는 Lambda 함수 코드를 배포할 수 있습니다. 주제 ARN과 함께 deleteTopic()
를 사용하고 주제를 성공적으로 삭제합니다.Why not have a generic IAM role for all Lambda functions?
이렇게 하면 다양한 IAM 역할의 유지 관리가 더 쉬워지지만
deleteTopic()
메서드가 Lambda 코드에 있어서는 안 되지만 종료되는 위의 시나리오와 같이 해당 Lambda 함수용이 아닌 위험한 코드가 있는 경우 발생합니다. 거기. 이러한 시나리오에서 Lambda의 IAM 실행 역할은 방어 계층이 됩니다! 따라서 전용 IAM 실행 역할이 있는 각 Lambda 함수는 해당 Lambda 함수에 필요한 항목만 허용합니다.Should I go with managed Policies?
AWS 관리형 정책은 시작하기에 좋은 방법이며 대부분의 경우를 처리하지만 때로는 고유한 IAM 정책을 정의해야 할 수도 있습니다.
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
- arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess
- arn:aws:iam::aws:policy/CloudWatchFullAccess
대부분의 사용 사례에서 다른 AWS 리소스에 대한 전체 액세스 권한이 필요하지 않을 수 있으므로 적합한 관리형 정책을 선택하는 것은 사용자의 결정입니다.
Policies:
-
PolicyName: StepFunctionsInvokeLambda
PolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: Allow
Action: lambda:InvokeFunction
Resource: !GetAtt Iterator.Arn
결론
최근에 이 블로그 게시물을 작성하도록 동기를 부여한 적절한 IAM 권한으로 Lambda 코드를 보호하는 이유에 대한 몇 가지 질문을 받았습니다. 모범 사례 접근 방식에 따라 각 Lambda 함수에 대해 최소 권한과 전용 IAM 실행 역할을 사용하는 것이 항상 좋습니다.
Reference
이 문제에 관하여(Lambda 코드에 필요한 것만 허용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/allow-only-what-your-lambda-code-needs-59f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)