사용자 지정을 위한 설정 - AWS Control Tower

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

사용자 지정을 위한 설정

다음 섹션에서는 사용자 지정 프로세스를 위해 Account Factory를 설정하는 단계를 설명합니다. 이 단계를 시작하기 전에 허브 계정의 위임 관리자를 설정하는 것이 좋습니다.

요약
  • 단계 1. 필요한 역할을 생성합니다. AWS Control Tower가 (허브) 계정에 액세스할 수 있는 권한을 부여하는 IAM 역할을 생성합니다. 이 계정에는 Blueprint라고도 하는 Service Catalog 제품이 저장되어 있습니다.

  • 단계 2. 제품 생성. AWS Service Catalog 사용자 지정 계정의 기준을 설정하는 데 필요한 AWS Service Catalog 제품 (“청사진 제품”이라고도 함) 을 만드세요.

  • 단계 3. 사용자 지정 청사진을 검토하세요. 만든 AWS Service Catalog 제품 (청사진) 을 살펴보세요.

  • 단계 4. 블루프린트를 호출하여 사용자 지정 계정을 만드세요. 계정을 생성하는 동안 AWS Control Tower 콘솔의 Account Factory의 해당 필드에 청사진 제품 정보와 역할 정보를 입력합니다.

단계 1. 필요한 역할을 생성하십시오.

계정을 사용자 지정하기 전에 AWS Control Tower와 허브 계정 간의 신뢰 관계를 포함하는 역할을 설정해야 합니다. 역할을 맡으면 AWS Control Tower에 허브 계정을 관리할 수 있는 액세스 권한을 부여합니다. 역할에는 이름을 지정해야 합니다. AWSControlTowerBlueprintAccess

AWS Control Tower는 이 역할을 맡아 사용자를 대신하여 포트폴리오 리소스를 만든 다음 청사진을 이 포트폴리오에 Service Catalog 제품으로 추가한 다음 계정 프로비저닝 중에 이 포트폴리오와 청사진을 회원 계정과 공유합니다. AWS Service Catalog

다음 섹션에 설명된 대로 AWSControlTowerBlueprintAccess 역할을 생성하게 됩니다.

IAM 콘솔로 이동하여 필요한 역할을 설정합니다.

등록된 AWS Control Tower 계정에서 역할을 설정하려면
  1. AWS Control Tower 관리 계정에서 보안 주체로 페더레이션하거나 로그인하십시오.

  2. 관리 계정의 페더레이션된 보안 주체에서 AWSControlTowerExecution 역할을 맡거나 블루프린트 허브 계정으로 사용하도록 선택한 등록된 AWS Control Tower 계정의 역할로 역할을 전환합니다.

  3. 등록된 AWS Control Tower 계정의 AWSControlTowerBlueprintAccess 역할에서 적절한 권한 및 신뢰 관계를 가진 역할을 생성합니다. AWSControlTowerExecution

참고

AWS 모범 사례 지침을 준수하려면 역할을 생성한 후 즉시 해당 AWSControlTowerExecution 역할에서 로그아웃하는 것이 중요합니다. AWSControlTowerBlueprintAccess

의도하지 않은 리소스 변경을 방지하기 위해 이 AWSControlTowerExecution 역할은 AWS Control Tower에서만 사용할 수 있습니다.

블루프린트 허브 계정이 AWS Control Tower에 등록되지 않은 경우, AWSControlTowerExecution 역할은 계정에 존재하지 않으므로 역할 설정을 계속하기 전에 역할을 맡을 필요가 없습니다. AWSControlTowerBlueprintAccess

등록되지 않은 멤버 계정에서 역할을 설정하려면
  1. 허브 계정으로 지정하려는 계정을 원하는 방법으로 페더레이션하거나 계정 주체로 로그인합니다.

  2. 계정의 보안 주체로 로그인한 경우 적절한 권한과 신뢰 관계를 사용하여 AWSControlTowerBlueprintAccess 역할을 생성하십시오.

두 명의 주체에게 신뢰를 부여하려면 AWSControlTowerBlueprintAccess역할을 설정해야 합니다.

  • AWS 컨트롤 타워 관리 계정에서 AWS 컨트롤 타워를 운영하는 주체 (사용자).

  • AWS Control Tower 관리 계정에 지정된 AWSControlTowerAdmin 역할.

다음은 역할에 포함해야 하는 것과 유사한 신뢰 정책의 예시입니다. 이 정책은 최소 권한 액세스 권한을 부여하는 모범 사례를 보여줍니다. 자체 정책을 만들 때는 YourManagementAccountId용어를 AWS Control Tower 관리 계정의 실제 계정 YourControlTowerUserRoleID로 바꾸고, 이 용어는 관리 계정의 IAM 역할 식별자로 바꾸십시오.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::YourManagementAccountId:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::YourManagementAccountId:role/YourControlTowerUserRole" ] }, "Action": "sts:AssumeRole" } ] }

필수 권한 정책

AWS Control Tower에서는 이름이 지정된 관리형 정책을 AWSControlTowerBlueprintAccess 역할에 AWSServiceCatalogAdminFullAccess 연결해야 합니다. 이 정책은 AWS Control Tower가 AWS Service Catalog 언제 포트폴리오와 AWS Service Catalog 제품 리소스를 관리할 수 있는지 확인하는 권한을 제공합니다. IAM 콘솔에서 역할을 생성할 때 이 정책을 추가할 수 있습니다.

추가 권한이 필요할 수 있습니다.
  • 청사진을 Amazon S3에 저장하는 경우, AWS Control Tower에도 AWSControlTowerBlueprintAccess 역할에 대한 AmazonS3ReadOnlyAccess 권한 정책이 필요합니다.

  • AWS Service Catalog Terraform 유형의 제품에서는 기본 관리 정책을 사용하지 않는 경우 AFC 사용자 지정 IAM 정책에 몇 가지 추가 권한을 추가해야 합니다. Terraform 템플릿에서 정의한 리소스를 생성하는 데 필요한 권한 외에도 이러한 권한이 필요합니다.

단계 2. 제품 생성 AWS Service Catalog

AWS Service Catalog 제품을 만들려면 AWS Service Catalog 관리자 안내서의 제품 만들기의 단계를 따르십시오. AWS Service Catalog 제품을 생성할 때 계정 블루프린트를 템플릿으로 추가해야 합니다.

중요

HashiCorp의 업데이트된 Terraform 라이선스에 따라 Terraform 오픈 소스 제품 및 프로비저닝된 제품에 대한 지원이 External이라는 새로운 제품 유형으로 AWS Service Catalog 변경되었습니다. 기존 계정 청사진을 외부 제품 유형으로 업데이트하는 방법을 포함하여 이번 변경이 AFC에 미치는 영향에 대해 자세히 알아보려면 외부 제품 유형으로의 전환을 검토하세요.

청사진을 만드는 단계 요약
  • 계정 청사진이 될 AWS CloudFormation 템플릿 또는 Terraform tar.gz 구성 파일을 만들거나 다운로드하세요. 일부 템플릿 예제는 이 섹션 뒷부분에 나와 있습니다.

  • Account Factory 블루프린트를 저장하는 AWS 계정 곳 (허브 계정이라고도 함) 에 로그인합니다.

  • AWS Service Catalog 콘솔로 이동합니다. 제품 목록을 선택한 다음 새 제품 업로드를 선택합니다.

  • 제품 세부 정보 창에 이름, 설명 등 청사진 제품에 대한 세부 정보를 입력합니다.

  • 템플릿 파일 사용을 선택한 다음 파일 선택을 선택합니다. 블루프린트로 사용하기 위해 개발하거나 다운로드한 템플릿 또는 구성 파일을 선택하거나 붙여넣습니다.

  • 콘솔 페이지 하단에서 제품 생성을 선택합니다.

AWS Service Catalog 참조 아키텍처 리포지토리에서 AWS CloudFormation 템플릿을 다운로드할 수 있습니다. 해당 리포지토리의 한 가지 예는 리소스에 대한 백업 계획을 설정하는 데 도움이 됩니다.

다음은 Best Pets라는 가상의 회사를 위한 예제 템플릿입니다. 이는 애완 동물 데이터베이스와의 연결을 설정하는 데 도움이 됩니다.

Resources: ConnectionStringGeneratorLambdaRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: - lambda.amazonaws.com Action: - "sts:AssumeRole" ConnectionStringGeneratorLambda: Type: AWS::Lambda::Function Properties: FunctionName: !Join ['-', ['ConnectionStringGenerator', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]] Description: Retrieves the connection string for this account to access the Pet Database Role: !GetAtt ConnectionStringGeneratorLambdaRole.Arn Runtime: nodejs16.x Handler: index.handler Timeout: 5 Code: ZipFile: > const response = require("cfn-response"); exports.handler = function (event, context) { const awsAccountId = context.invokedFunctionArn.split(":")[4] const connectionString= "fake connection string that's specific to account " + awsAccountId; const responseData = { Value: connectionString, } response.send(event, context, response.SUCCESS, responseData); return connectionString; }; ConnectionString: Type: Custom::ConnectionStringGenerator Properties: ServiceToken: !GetAtt ConnectionStringGeneratorLambda.Arn PetDatabaseConnectionString: DependsOn: ConnectionString # For example purposes we're using SSM parameter store. # In your template, use secure alternatives to store # sensitive values such as connection strings. Type: AWS::SSM::Parameter Properties: Name: pet-database-connection-string Description: Connection information for the BestPets pet database Type: String Value: !GetAtt ConnectionString.Value

단계 3. 맞춤형 청사진을 검토하세요.

콘솔에서 블루프린트를 볼 수 있습니다. AWS Service Catalog 자세한 내용은 Service Catalog 관리자 안내서의 제품 관리를 참조하십시오.

4단계. 청사진을 호출하여 사용자 지정 계정을 생성하십시오.

AWS Control Tower 콘솔에서 계정 생성 워크플로를 따라가면 계정을 사용자 지정하는 데 사용할 블루프린트에 대한 정보를 입력할 수 있는 선택적 섹션이 표시됩니다.

참고

사용자 지정 허브 계정을 설정하고 청사진 (Service Catalog 제품) 을 하나 이상 추가해야 해당 정보를 AWS Control Tower 콘솔에 입력하고 사용자 지정 계정을 프로비저닝하기 시작할 수 있습니다.

AWS Control Tower 콘솔에서 사용자 지정 계정을 생성하거나 업데이트하십시오.
  1. 블루프린트가 포함된 계정의 계정 ID를 입력합니다.

  2. 해당 계정에서 기존 Service Catalog 제품 (기존 청사진) 을 선택합니다.

  3. 버전이 두 개 이상인 경우 적절한 버전의 청사진 (Service Catalog 제품) 을 선택하십시오.

  4. (선택 사항) 프로세스의 이 시점에서 블루프린트 프로비저닝 정책을 추가하거나 변경할 수 있습니다. 블루프린트 프로비저닝 정책은 JSON으로 작성되고 IAM 역할에 연결되므로 블루프린트 템플릿에 지정된 리소스를 프로비저닝할 수 있습니다. AWS Control Tower는 Service Catalog가 AWS CloudFormation 스택 세트를 사용하여 리소스를 배포할 수 있도록 멤버 계정에 이 역할을 생성합니다. 이 역할의 이름은 AWSControlTower-BlueprintExecution-bp-xxxx입니다. AdministratorAccess정책은 기본적으로 여기에 적용됩니다.

  5. 이 블루프린트에 따라 계정을 배포하려는 지역 AWS 리전 또는 지역을 선택합니다.

  6. 블루프린트에 파라미터가 포함된 경우, AWS Control Tower 워크플로의 추가 필드에 파라미터 값을 입력할 수 있습니다. 추가 값에는 GitHub 리포지토리 이름, GitHub 브랜치, Amazon ECS 클러스터 이름, 리포지토리 소유자의 GitHub ID 등이 포함될 수 있습니다.

  7. 허브 계정이나 블루프린트가 아직 준비되지 않은 경우 계정 업데이트 프로세스에 따라 나중에 계정을 사용자 지정할 수 있습니다.

자세한 내용은 블루프린트에서 사용자 지정 계정을 만드세요.를 참조하세요.