AWS SAM 정책 템플릿 - AWS Serverless Application Model

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

AWS SAM 정책 템플릿

AWS Serverless Application Model(AWS SAM)를 사용하면 정책 템플릿 목록에서 선택하여 Lambda 함수 및 AWS Step Functions 상태 시스템의 권한 범위를 애플리케이션에서 사용하는 리소스로 지정할 수 있습니다.

정책 템플릿을 사용하는 AWS Serverless Application Repository의 AWS SAM 애플리케이션의 경우 AWS Serverless Application Repository에서 애플리케이션을 배포할 때 특별한 고객 승인이 필요하지 않습니다.

새 정책 템플릿 추가를 요청하려면 다음을 수행합니다.

  1. AWS SAM GitHub 프로젝트의 develop 브랜치에 있는 policy_templates.json 소스 파일에 대해 풀 요청을 제출합니다. 소스 파일은 GitHub 웹사이트의 policy_templates.json에서 찾을 수 있습니다.

  2. AWS SAM GitHub 프로젝트에 풀 요청의 이유와 요청 링크가 포함된 문제를 제출합니다. 이 링크를 사용하여 새 문제를 제출합니다. AWS Serverless Application Model: 문제.

구문

AWS SAM 템플릿 파일에 지정하는 모든 정책 템플릿에는 항상 정책 템플릿의 자리 표시자 값이 포함된 객체를 지정해야 합니다. 정책 템플릿에 자리 표시자 값이 필요하지 않은 경우 빈 객체를 지정해야 합니다.

YAML

MyFunction: Type: AWS::Serverless::Function Properties: Policies: - PolicyTemplateName1: # Policy template with placeholder value Key1: Value1 - PolicyTemplateName2: {} # Policy template with no placeholder value

예시

예 1: 자리 표시자 값이 있는 정책 템플릿

다음 예는 SQSPollerPolicy 정책 템플릿에서 QueueName를 리소스로 예상한다는 것을 보여줍니다. AWS SAM 템플릿은 ‘MyQueue‘ Amazon SQS 대기열의 이름을 검색합니다. 이 대기열은 동일한 애플리케이션에서 생성하거나 애플리케이션에 대한 파라미터로 요청할 수 있습니다.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName

예 2: 자리 표시자 값이 없는 정책 템플릿

다음 예에는 자리 표시자 값이 없는 CloudWatchPutMetricPolicy 정책 템플릿이 포함되어 있습니다.

참고

자리 표시자 값이 없더라도 빈 객체를 지정해야 합니다. 그렇지 않으면 오류가 발생합니다.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - CloudWatchPutMetricPolicy: {}

정책 템플릿 테이블

다음은 사용 가능한 정책 템플릿의 테이블입니다.

정책 템플릿 설명
AcmGetCertificatePolicy AWS Certificate Manager에서 인증서를 읽을 수 있는 권한을 부여합니다.
AMIDescribePolicy Amazon Machine Image(AMI)를 설명할 수 있는 권한을 부여합니다.
AthenaQueryPolicy Athena 쿼리를 실행할 권한을 부여합니다.
AWSSecretsManagerGetSecretValuePolicy 지정된 AWS Secrets Manager 보안 암호의 보안 암호 값을 가져올 수 있는 권한을 부여합니다.
AWSSecretsManagerRotationPolicy AWS Secrets Manager에서 보안 암호를 교체할 수 있는 권한을 부여합니다.
CloudFormationDescribeStacksPolicy AWS CloudFormation 스택을 설명할 수 있는 권한을 부여합니다.
CloudWatchDashboardPolicy CloudWatch 대시보드에서 작동할 지표를 배치할 권한을 부여합니다.
CloudWatchDescribeAlarmHistoryPolicy CloudWatch 경보 기록을 설명할 수 있는 권한을 부여합니다.
CloudWatchPutMetricPolicy CloudWatch에 지표를 전송할 수 있는 권한을 부여합니다.
CodeCommitCrudPolicy 특정 CodeCommit 리포지토리 내에서 객체를 생성/읽기/업데이트/삭제할 수 있는 권한을 부여합니다.
CodeCommitReadPolicy 특정 CodeCommit 리포지토리 내에서 객체를 읽을 수 있는 권한을 부여합니다.
CodePipelineLambdaExecutionPolicy CodePipeline에서 호출한 Lambda 함수가 작업 상태를 보고하도록 권한을 부여합니다.
CodePipelineReadOnlyPolicy CodePipeline 파이프라인의 세부 정보를 가져올 수 있는 읽기 권한을 부여합니다.
ComprehendBasicAccessPolicy 엔터티, 핵심 문구, 언어 및 감정을 탐지할 수 있는 권한을 부여합니다.
CostExplorerReadOnlyPolicy 청구 내역에 대한 읽기 전용 Cost Explorer API에 읽기 전용 권한을 부여합니다.
DynamoDBBackupFullAccessPolicy 테이블에 대한 DynamoDB 온디맨드 백업에 읽기 및 쓰기 권한을 부여합니다.
DynamoDBCrudPolicy Amazon DynamoDB 테이블에 생성, 읽기, 업데이트 및 삭제 권한을 부여합니다.
DynamoDBReadPolicy DynamoDB 테이블에 읽기 전용 권한 부여
DynamoDBReconfigurePolicy DynamoDB 테이블을 재구성할 수 있는 권한을 부여합니다.
DynamoDBRestoreFromBackupPolicy 백업에서 테이블을 복원할 수 있는 권한을 부여합니다.
DynamoDBStreamReadPolicy DynamoDB 스트림과 레코드를 설명하고 읽을 수 있는 권한을 부여합니다.
DynamoDBWritePolicy DynamoDB 테이블에 쓰기 전용 권한 부여
EC2CopyImagePolicy Amazon EC2 이미지를 복사할 수 있는 권한을 부여합니다.
EC2DescribePolicy Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 설명할 수 있는 권한을 부여합니다.
EcsRunTaskPolicy 태스크 정의에 대해 새 태스크를 시작할 수 있는 권한을 부여합니다.
EFSWriteAccessPolicy 쓰기 액세스 권한이 있는 Amazon EFS 파일 시스템을 마운트할 수 있는 권한을 부여합니다.
EKSDescribePolicy Amazon EKS 클러스터를 설명하거나 나열할 수 있는 권한을 부여합니다.
ElasticMapReduceAddJobFlowStepsPolicy 실행 중인 클러스터에 새 단계를 추가할 수 있는 권한을 부여합니다.
ElasticMapReduceCancelStepsPolicy 실행 중인 클러스터에서 대기 중 단계를 취소할 수 있는 권한을 부여합니다.
ElasticMapReduceModifyInstanceFleetPolicy 클러스터 내 인스턴스 플릿의 세부 정보를 나열하고 용량을 수정할 수 있는 권한을 부여합니다.
ElasticMapReduceModifyInstanceGroupsPolicy 클러스터 내 인스턴스 그룹의 세부 정보를 나열하고 설정을 수정할 수 있는 권한을 부여합니다.
ElasticMapReduceSetTerminationProtectionPolicy 클러스터에 대한 종료 보호를 설정할 수 있는 권한을 부여합니다.
ElasticMapReduceTerminateJobFlowsPolicy 클러스터를 종료할 수 있는 권한을 부여합니다.
ElasticsearchHttpPostPolicy Amazon OpenSearch Service에 POST 권한을 부여합니다.
EventBridgePutEventsPolicy EventBridge로 이벤트를 보낼 수 있는 권한을 부여합니다.
FilterLogEventsPolicy 지정된 로그 그룹에서 CloudWatch Logs 이벤트를 필터링할 수 있는 권한을 부여합니다.
FirehoseCrudPolicy Firehose 전송 스트림을 생성, 쓰기, 업데이트 및 삭제할 수 있는 권한을 부여합니다.
FirehoseWritePolicy Firehose 전송 스트림에 쓸 수 있는 권한을 부여합니다.
KinesisCrudPolicy Amazon Kinesis 스트림을 생성, 게시 및 삭제할 수 있는 권한을 부여합니다.
KinesisStreamReadPolicy Amazon Kinesis 스트림을 나열하고 읽을 수 있는 권한을 부여합니다.
KMSDecryptPolicy AWS Key Management Service(AWS KMS) 키로 복호화할 수 있는 권한을 부여합니다.
KMSEncryptPolicy AWS Key Management Service(AWS KMS) 키로 암호화할 수 있는 권한을 부여합니다.
LambdaInvokePolicy AWS Lambda 함수, 별칭 또는 버전을 호출할 수 있는 권한을 부여합니다.
MobileAnalyticsWriteOnlyAccessPolicy 모든 애플리케이션 리소스에 이벤트 데이터를 넣을 수 있는 쓰기 전용 권한을 부여합니다.
OrganizationsListAccountsPolicy 하위 계정 이름 및 ID를 나열할 수 있는 읽기 전용 권한을 부여합니다.
PinpointEndpointAccessPolicy Amazon Pinpoint 애플리케이션의 엔드포인트를 가져오고 업데이트할 수 있는 권한을 부여합니다.
PollyFullAccessPolicy Amazon Polly 어휘 리소스에 대한 전체 액세스 권한을 부여합니다.
RekognitionDetectOnlyPolicy 얼굴, 레이블, 텍스트를 감지할 수 있는 권한을 부여합니다.
RekognitionFacesManagementPolicy Amazon Rekognition 컬렉션에서 얼굴을 추가, 삭제 및 검색할 수 있는 권한을 부여합니다.
RekognitionFacesPolicy 얼굴과 레이블을 비교하고 감지할 수 있는 권한을 부여합니다.
RekognitionLabelsPolicy 객체 및 중재 레이블을 탐지할 수 있는 권한을 부여합니다.
RekognitionNoDataAccessPolicy 얼굴과 레이블을 비교하고 감지할 수 있는 권한을 부여합니다.
RekognitionReadPolicy 얼굴을 나열하고 검색할 수 있는 권한을 부여합니다.
RekognitionWriteOnlyAccessPolicy 얼굴을 모으고 인덱싱할 수 있는 권한을 부여합니다.
Route53ChangeResourceRecordSetsPolicy Route 53에서 리소스 레코드 세트를 변경할 수 있는 권한을 부여합니다.
S3CrudPolicy Amazon S3 버킷의 객체에 대해 작업을 수행할 수 있는 생성, 읽기, 업데이트 및 삭제 권한을 부여합니다.
S3FullAccessPolicy Amazon S3 버킷의 객체에 대해 작업을 수행할 수 있는 전체 액세스 권한을 부여합니다.
S3ReadPolicy Amazon Simple Storage Service(S3) 버킷에 있는 객체를 읽을 수 있는 읽기 전용 권한을 부여합니다.
S3WritePolicy Amazon S3 버킷에 객체를 쓸 수 있는 쓰기 권한을 부여합니다.
SageMakerCreateEndpointConfigPolicy SageMaker에서 엔드포인트 구성을 생성할 수 있는 권한을 부여합니다.
SageMakerCreateEndpointPolicy SageMaker에서 엔드포인트를 생성할 수 있는 권한을 부여합니다.
ServerlessRepoReadWriteAccessPolicy AWS Serverless Application Repository 서비스에서 애플리케이션을 생성하고 나열할 수 있는 권한을 부여합니다.
SESBulkTemplatedCrudPolicy 이메일, 템플릿 이메일, 템플릿 대량 이메일을 보내고 자격 증명을 확인할 수 있는 권한을 부여합니다.
SESBulkTemplatedCrudPolicy_v2 Amazon SES 이메일, 템플릿 기반 이메일, 템플릿 형식의 대량 이메일을 보내고 ID를 확인할 수 있는 권한을 부여합니다.
SESCrudPolicy 이메일을 보내고 ID를 확인할 수 있는 권한을 부여합니다.
SESEmailTemplateCrudPolicy Amazon SES 이메일 템플릿을 만들고, 가져오고, 나열하고, 업데이트하고, 삭제할 수 있는 권한을 부여합니다.
SESSendBouncePolicy Amazon Simple Email Service(Amazon SES) ID에 대한 SendBounce 권한을 부여합니다.
SNSCrudPolicy Amazon SNS 주제를 만들고, 게시하고, 구독할 수 있는 권한을 부여합니다.
SNSPublishMessagePolicy Amazon Simple Notification Service(Amazon SNS) 주제에 이벤트 메시지 게시
SQSPollerPolicy Amazon Simple Queue Service(Amazon SQS) 대기열을 폴링할 수 있는 권한을 부여합니다.
SQSSendMessagePolicy Amazon SQS 대기열에 메시지를 보낼 수 있는 권한을 부여합니다.
SSMParameterReadPolicy Amazon EC2 Systems Manager(SSM) 파라미터 스토어의 파라미터에 액세스하여 이 계정에 보안 암호를 로드할 수 있는 권한을 부여합니다. 파라미터 이름에 슬래시 접두사가 없을 때 사용합니다.
SSMParameterWithSlashPrefixReadPolicy Amazon EC2 Systems Manager(SSM) 파라미터 스토어의 파라미터에 액세스하여 이 계정에 보안 암호를 로드할 수 있는 권한을 부여합니다. 파라미터 이름에 슬래시 접두사가 있는 경우 사용합니다.
StepFunctionsExecutionPolicy Step Functions 상태 머신 실행을 시작하기 위해 권한을 제공합니다.
TextractDetectAnalyzePolicy Amazon Textract를 사용하여 문서를 탐지하고 분석할 수 있는 액세스 권한을 제공합니다.
TextractGetResultPolicy Amazon Textract에서 문서를 탐지하고 분석할 수 있는 액세스 권한을 제공합니다.
TextractPolicy Amazon Textract에 대한 모든 액세스 권한을 부여합니다.
VPCAccessPolicy 탄력적 네트워크 인터페이스를 생성, 삭제, 설명 및 분리할 수 있는 액세스 권한을 제공합니다.

문제 해결

SAM CLI error: "Must specify valid parameter values for policy template '<policy-template-name>'"

sam build를 실행하면 다음 오류가 표시됩니다.

"Must specify valid parameter values for policy template '<policy-template-name>'"
            

즉, 자리 표시자 값이 없는 정책 템플릿을 선언할 때 빈 객체를 전달하지 않았습니다.

이 문제를 해결하려면 다음 CloudWatchPutMetricPolicy 예제와 같이 정책을 선언합니다.

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}