

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

# CloudFormation 메커니즘을 사용하여 AWS SAM 권한 관리
<a name="sam-permissions-cloudformation"></a>

 AWS 리소스에 대한 액세스를 제어하기 위해 AWS Serverless Application Model (AWS SAM)는와 동일한 메커니즘을 사용할 수 있습니다 CloudFormation. 자세한 내용은 *AWS CloudFormation 사용 설명서*에서 [AWS Identity and Access Management를 사용한 액세스 제어](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) 섹션을 참조하세요.

사용자에게 서버리스 애플리케이션을 관리할 수 있는 권한을 부여하는 데는 세 가지 기본 옵션이 있습니다. 각 옵션은 사용자에게 다양한 수준의 액세스 제어를 제공합니다.
+ 관리자 권한을 부여합니다.
+ 필요한 AWS 관리형 정책을 연결합니다.
+ 특정 AWS Identity and Access Management (IAM) 권한을 부여합니다.

선택한 옵션에 따라 사용자는 액세스 권한이 있는 AWS 리소스가 포함된 서버리스 애플리케이션만 관리할 수 있습니다.

다음 단원에서는 각 프로세스를 상세히 설명합니다.

## 관리자 권한 부여
<a name="sam-permissions-cloudformation-admin"></a>

사용자에게 관리자 권한을 부여하면 AWS 리소스 조합이 포함된 서버리스 애플리케이션을 관리할 수 있습니다. 이는 가장 간단한 방법이지만 사용자에게 가장 광범위한 권한 집합을 부여하므로, 사용자가 가장 큰 영향을 미치는 작업을 수행할 수 있습니다.

사용자에게 관리자 권한을 부여하는 방법에 대한 자세한 내용은 *IAM 사용자 설명서*의 [첫 번째 IAM 사용자 및 관리자 그룹 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)을 참조하세요.

## 필요한 AWS 관리형 정책 연결
<a name="sam-permissions-cloudformation-managed-policies"></a>

전체 관리자 권한을 부여하는 대신 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 사용하여 사용자에게 권한의 일부를 부여할 수 있습니다. 이 옵션을 사용하는 경우 AWS 관리형 정책 세트가 사용자가 관리하는 서버리스 애플리케이션에 필요한 모든 작업과 리소스를 포함하는지 확인합니다.

예를 들어 다음 AWS 관리형 정책은 [샘플 Hello World 애플리케이션을 배포](serverless-getting-started-hello-world.md)하기에 충분합니다.
+ AWSCloudFormationFullAccess
+ IAMFullAccess
+ AWSLambda\$1FullAccess
+ AmazonAPIGatewayAdministrator
+ AmazonS3FullAccess
+ AmazonEC2ContainerRegistryFullAccess

 정책 연결에 대한 자세한 내용은 *IAM 사용자 설명서*의 [IAM 사용자의 권한 변경](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)을 참조하세요.

## 특정 IAM 권한 부여
<a name="sam-permissions-cloudformation-policy-statement"></a>

가장 세분화된 수준의 액세스 제어를 위해 [정책 설명](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_statement.html)을 사용하여 사용자에게 특정 IAM 권한을 부여할 수 있습니다. 이 옵션을 사용하는 경우 사용자가 관리하는 서버리스 애플리케이션에 필요한 모든 작업과 리소스가 정책 설명에 포함되는지 확인하세요.

이 옵션의 모범 사례는 사용자에게 Lambda 실행 역할을 비롯한 역할 생성 권한을 거부하여 사용자가 자신에게 에스컬레이션된 권한을 부여할 수 없도록 하는 것입니다. 따라서 관리자는 먼저 사용자가 관리할 서버리스 애플리케이션에 지정될 [Lambda 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)을 생성해야 합니다. Lambda 실행 역할 생성에 대한 자세한 내용은 [IAM 콘솔에서 실행 역할 생성](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-console) 섹션을 참조하세요.

[샘플 Hello World 애플리케이션](serverless-getting-started-hello-world.md)의 경우 **AWSLambdaBasicExecutionRole**만 있으면 애플리케이션을 실행하기에 충분합니다. Lambda 실행 역할을 생성한 후 샘플 Hello World 애플리케이션의 AWS SAM 템플릿 파일을 수정하여 `AWS::Serverless::Function` 리소스에 다음 속성을 추가합니다.

```
  Role: lambda-execution-role-arn
```

수정된 Hello World 애플리케이션이 적용되면 다음 정책 설명은 사용자에게 애플리케이션을 배포, 업데이트 및 삭제할 수 있는 충분한 권한을 부여합니다.

**참고**  
이 섹션의 예제 정책 설명은 [샘플 Hello World 애플리케이션](serverless-getting-started-hello-world.md)을 배포, 업데이트 및 삭제할 수 있는 충분한 권한을 부여합니다. 애플리케이션에 추가 리소스 유형을 추가하는 경우 다음을 포함하도록 정책 설명을 업데이트해야 합니다.  
애플리케이션이 서비스 작업을 호출할 수 있는 권한.
서비스 주체(서비스 활동에 필요한 경우)
예를 들어 Step Functions 워크플로를 추가하는 경우, [여기](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstepfunctions.html#awsstepfunctions-actions-as-permissions)에 나열된 작업에 대한 권한과 `states.amazonaws.com` 서비스 주체를 추가해야 할 수 있습니다.

IAM 정책에 대한 자세한 내용은 *IAM 사용자 설명서*의 [IAM 정책 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) 섹션을 참조하세요.