권한 세트 생성 - AWS 규범적 지침

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

권한 세트 생성

AWS IAM Identity Center에서 권한 세트를 사용하여 AWS 계정 액세스를 관리할 수 있습니다. 권한 세트는 하나 이상의 IAM 정책을 여러 AWS 계정에 배포하는 데 사용할 수 있는 템플릿입니다. AWS 계정에 권한 세트를 할당하면 IAM Identity Center는 IAM 역할을 생성하고 IAM 정책을 해당 역할에 연결합니다. 자세한 내용은 Create and manage permission sets(IAM Identity Center 문서)를 참조하세요.

AWS는 비즈니스의 다양한 페르소나에 매핑되는 권한 세트를 생성할 것을 권장합니다.

예를 들어, 다음과 같은 권한 세트를 생성할 수 있습니다.

다음 권한 세트는 AWS CloudFormation 템플릿의 코드 조각입니다. 이 코드를 시작점으로 사용하여 비즈니스에 맞게 사용자 지정의해야 합니다. CloudFormation 템플릿에 대한 자세한 내용은 Learn template basics(CloudFormation 설명서)를 참조하세요.

결제 권한 세트

재무 팀은 BillingAccessPermissionSet를 사용하여 각 계정의 AWS Billing 콘솔 대시보드와 AWS Cost Explorer를 봅니다.

BillingAccessPermissionSet: Type: "AWS::SSO::PermissionSet" Properties: Description: Access to Billing and Cost Explorer InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId" ManagedPolicies: - !Sub "arn:${AWS::Partition}:iam::aws:policy/job-function/Billing" Name: BillingAccess SessionDuration: PT8H RelayStateType: https://console.aws.amazon.com/billing/home

개발자 권한 세트

엔지니어링 팀은 DeveloperAccessPermissionSet를 사용하여 비 프로덕션 계정에 액세스합니다.

DeveloperAccessPermissionSet: Type: "AWS::SSO::PermissionSet" Properties: Description: Access to provision resources through CloudFormation InlinePolicy: !Sub |- { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:${AWS::Partition}:iam::*:role/CloudFormationRole", "Condition": { "StringEquals": { "aws:ResourceAccount": "${!aws:PrincipalAccount}", "iam:PassedToService": "cloudformation.${AWS::URLSuffix}" } } }, { "Effect": "Allow", "Action": [ "cloudformation:ContinueUpdateRollback", "cloudformation:CreateChangeSet", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:RollbackStack", "cloudformation:UpdateStack" ], "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app/*", "Condition": { "ArnLike": { "cloudformation:RoleArn": "arn:${AWS::Partition}:iam::${!aws:PrincipalAccount}:role/CloudFormationRole" }, "Null": { "cloudformation:ImportResourceTypes": true } } }, { "Effect": "Allow", "Action": [ "cloudformation:CancelUpdateStack", "cloudformation:DeleteChangeSet", "cloudformation:DetectStackDrift", "cloudformation:DetectStackResourceDrift", "cloudformation:ExecuteChangeSet", "cloudformation:TagResource", "cloudformation:UntagResource", "cloudformation:UpdateTerminationProtection" ], "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app/*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateUploadBucket", "cloudformation:ValidateTemplate", "cloudformation:EstimateTemplateCost" ], "Resource": "*" } ] } InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId" ManagedPolicies: - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSServiceCatalogEndUserFullAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSProtonDeveloperAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSBillingReadOnlyAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSSupportAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/ReadOnlyAccess" Name: DeveloperAccess SessionDuration: PT8H

프로덕션 권한 세트

엔지니어링 팀은 ProductionPermissionSet를 사용하여 프로덕션 계정에 액세스합니다. 이 권한 세트에는 제한된 읽기 전용 액세스 권한이 있습니다.

ProductionPermissionSet: Type: "AWS::SSO::PermissionSet" Properties: Description: Access to production accounts InlinePolicy: !Sub |- { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:${AWS::Partition}:iam::*:role/CloudFormationRole", "Condition": { "StringEquals": { "aws:ResourceAccount": "${!aws:PrincipalAccount}", "iam:PassedToService": "cloudformation.${AWS::URLSuffix}" } } }, { "Effect": "Allow", "Action": "cloudformation:ContinueUpdateRollback", "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app/*", "Condition": { "ArnLike": { "cloudformation:RoleArn": "arn:${AWS::Partition}:iam::${!aws:PrincipalAccount}:role/CloudFormationRole" } } }, { "Effect": "Allow", "Action": "cloudformation:CancelUpdateStack", "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app/*" } ] } InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId" ManagedPolicies: - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSBillingReadOnlyAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSSupportAccess" - !Sub "arn:${AWS::Partition}:iam::aws:policy/job-function/ViewOnlyAccess" Name: ProductionAccess SessionDuration: PT2H