

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

# 권한 경계 생성
<a name="creating-a-permissions-boundary"></a>

권한 세트를 배포한 후 권한 경계를 설정합니다. 이 *권한 경계*는 클라우드 인프라를 개발, 테스트, 시작 및 관리하는 사용자에게만 IAM 액세스를 위임하는 메커니즘입니다. 이러한 사용자는 정책과 권한 경계에서 허용하는 작업만 수행할 수 있습니다.

 AWS CloudFormation 템플릿에서 권한 경계를 정의한 다음 CloudFormation StackSets를 사용하여 템플릿을 여러 계정에 배포할 수 있습니다. 이렇게 하면 단일 작업으로 조직 전체에 표준화된 정책을 수립하고 유지할 수 있습니다. 자세한 내용과 지침은 [Working with AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)(CloudFormation 설명서)를 참조하세요.

다음 CloudFormation 템플릿은 IAM 역할을 프로비저닝하고 권한 경계 역할을 하는 IAM 정책을 생성합니다. 스택 세트를 사용하면 이 템플릿을 조직의 모든 멤버 계정에 배포할 수 있습니다.

```
CloudFormationRole:
  Type: "AWS::IAM::Role"
  Properties:
    AssumeRolePolicyDocument:
      Version: "2012-10-17"
      Statement:
        Effect: Allow
        Principal:
          Service: !Sub "cloudformation.${AWS::URLSuffix}"
        Action: "sts:AssumeRole"
        Condition:
          StringEquals:
            "aws:SourceAccount": !Ref "AWS::AccountId"
    Description: !Sub "DO NOT DELETE - Used by CloudFormation. Created by CloudFormation ${AWS::StackId}"
    ManagedPolicyArns:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AdministratorAccess"
    PermissionsBoundary: !Ref DeveloperBoundary
    RoleName: CloudFormationRole

DeveloperBoundary:
  Type: "AWS::IAM::ManagedPolicy"
  Properties:
    Description: Permission boundary for developers
    ManagedPolicyName: PermissionsBoundary
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
        - Sid: AllowModifyIamRolesWithBoundary
          Effect: Allow
          Action:
            - "iam:AttachRolePolicy"
            - "iam:CreateRole"
            - "iam:DeleteRolePolicy"
            - "iam:DetachRolePolicy"
            - "iam:PutRolePermissionsBoundary"
            - "iam:PutRolePolicy"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
          Condition:
            ArnEquals:
              "iam:PermissionsBoundary": !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/PermissionsBoundary"
        - Sid: AllowModifyIamRoles
          Effect: Allow
          Action:
            - "iam:DeleteRole"
            - "iam:TagRole"
            - "iam:UntagRole"
            - "iam:UpdateAssumeRolePolicy"
            - "iam:UpdateRole"
            - "iam:UpdateRoleDescription"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
        - Sid: OverlyPermissiveAllowedServices
          Effect: Allow
          Action:
            - "lambda:*"
            - "apigateway:*"
            - "events:*"
            - "s3:*"
            - "logs:*"
          Resource: "*"
```

**CloudFormationRole** 역할, **PermissionsBoundary** 정책 및 **DeveloperAccess** 권한 세트가 함께 작동하여 다음 권한을 부여합니다.
+ 사용자는 **ReadOnlyAccess** AWS 관리형 정책을 AWS 서비스통해 대부분의에 대한 읽기 전용 액세스 권한을 가집니다.
+ 사용자는 **AWSSupportAccess** AWS 관리형 정책을 통해 열린 지원 사례에 액세스할 수 있습니다.
+ 사용자는 **AWSBillingReadOnlyAccess** AWS 관리형 정책을 통해 AWS Billing 콘솔 대시보드에 대한 읽기 전용 액세스 권한을 가집니다.
+ 사용자는 **AWSServiceCatalogEndUserFullAccess** AWS 관리형 정책을 통해 Service Catalog에서 제품을 프로비저닝할 수 있습니다.
+ 사용자는 인라인 정책을 통해 모든 CloudFormation 템플릿의 비용을 검증하고 추정할 수 있습니다.
+ 사용자는 **CloudFormationRole** IAM 역할을 사용하여 **app/**로 시작하는 CloudFormation 스택을 생성, 업데이트 또는 삭제할 수 있습니다.
+ 사용자는 CloudFormation을 사용하여 **app/**로 시작하는 IAM 역할을 생성, 업데이트 또는 삭제할 수 있습니다. **PermissionsBoundary** IAM 정책은 사용자가 권한을 에스컬레이션하는 것을 방지합니다.
+ 사용자는 CloudFormation을 사용해야만 AWS Lambda Amazon EventBridge, Amazon CloudWatch, Amazon Simple Storage Service(Amazon S3) 및 Amazon API Gateway 리소스를 프로비저닝할 수 있습니다. CloudFormation

다음 이미지는 개발자와 같은 권한 있는 사용자가 이 가이드에 설명된 권한 세트, IAM 역할 및 권한 경계를 사용하여 멤버 계정에서 새 IAM 역할을 생성하는 방법을 보여줍니다.

1. 사용자가 IAM Identity Center에서 인증하고 **DeveloperAccess** IAM 역할을 수임합니다.

1. 사용자가 `cloudformation:CreateStack` 작업을 시작하고 **CloudFormationRole** IAM 역할을 수임합니다.

1. 사용자가 `iam:CreateRole` 작업을 시작하고 CloudFormation을 사용하여 새 IAM 역할을 생성합니다.

1. **PermissionsBoundary** IAM 정책이 새 IAM 역할에 적용됩니다.



![\[멤버 계정의 권한 경계가 적용되는 IAM 역할을 생성하는 사용자\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/2_create-iam-role.png)


**CloudFormationRole** 역할에는 [AdministratorAccess](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator) 관리형 정책이 연결되어 있지만 **PermissionsBoundary** IAM 정책으로 인해 **CloudFormationRole** 역할의 유효 권한은 **PermissionsBoundary** 정책과 동일해집니다. **PermissionsBoundary** 정책은 `iam:CreateRole` 작업을 허용할 때 자체적으로 참조하므로 권한 경계가 적용된 경우에만 역할이 생성될 수 있습니다.