권한 경계 생성 - AWS 규범적 지침

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

권한 경계 생성

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

AWS CloudFormation 템플릿에 권한 경계를 정의한 다음 CloudFormation StackSets를 사용하여 템플릿을 여러 계정에 배포할 수 있습니다. 이렇게 하면 단일 작업으로 조직 전체에 표준화된 정책을 수립하고 유지할 수 있습니다. 자세한 내용과 지침은 Working with AWS CloudFormation StackSets(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 콘솔 대시보드에 대한 읽기 전용 액세스 권한을 갖습니다.

  • 사용자는 AWSProtonDeveloperAccess AWS 관리형 정책을 통해 AWS Proton에서 새로운 환경을 프로비저닝할 수 있습니다.

  • 사용자는 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(S3) 및 Amazon API Gateway 리소스를 프로비저닝할 수 있습니다.

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

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

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

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

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


        멤버 계정의 권한 경계가 적용되는 IAM 역할을 생성하는 사용자

CloudFormationRole 역할에는 AdministratorAccess 관리형 정책이 연결되어 있지만 PermissionsBoundary IAM 정책으로 인해 CloudFormationRole 역할의 유효 권한은 PermissionsBoundary 정책과 동일해집니다. PermissionsBoundary 정책은 iam:CreateRole 작업을 허용할 때 자체적으로 참조하므로 권한 경계가 적용된 경우에만 역할이 생성될 수 있습니다.