

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

# AWS Control Tower가 역할을 사용하여 계정을 생성 및 관리하는 방식
<a name="roles-how"></a>

일반적으로 역할은 AWS에서 Identity and Access Management(IAM)의 일부입니다. 의 IAM 및 역할에 대한 일반적인 정보는 IAM 사용 설명서의 IAM 역할 주제를 AWS참조하세요. [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) 

## 역할 및 계정 생성
<a name="roles-and-account-creation"></a>

AWS Control Tower는 AWS Organizations의 `CreateAccount` API를 직접 호출하여 고객의 계정을 생성합니다. AWS Organizations 는이 계정을 생성할 때 해당 계정 내에 역할을 생성합니다.이 계정은 파라미터를 API에 전달하여 AWS Control Tower의 이름을 지정합니다. 역할의 이름은 `AWSControlTowerExecution`입니다.

AWS Control Tower는 Account Factory에서 생성한 모든 계정의 `AWSControlTowerExecution` 역할을 맡습니다. 이 역할을 사용하여 AWS Control Tower는 *계정*을 기준으로 설정하고 필수(및 기타 활성화된) 제어를 적용하여 다른 역할을 생성합니다. 이러한 역할은 AWS Config와 같은 다른 서비스에서 사용됩니다.

**참고**  
계정을 *기준*으로 지정하려면 리소스를 설정해야 합니다. 여기에는 *블루프린트* 및 제어라고도 하는 [Account Factory 템플릿](https://docs.aws.amazon.com//controltower/latest/userguide/account-factory-considerations.html)이 포함됩니다. 또한 기준 설정 프로세스는 템플릿 배포의 일환으로 중앙 집중식 로깅 및 보안 감사 역할을 설정합니다. AWS Control Tower 기준은 등록된 모든 계정에 적용하는 역할에 포함됩니다.

계정 및 리소스에 대한 자세한 내용은 [AWS Control Tower AWS 계정 의 정보](accounts.md) 섹션을 참조하세요.

## AWS Control Tower가 비관리형 OUs 및 계정의 AWS Config 규칙을 집계하는 방법
<a name="config-role-for-organizations"></a>
+  AWS Control Tower 관리 계정은 외부 AWS Config 규칙을 감지하는 데 도움이 되는 조직 수준 집계자를 생성하므로 AWS Control Tower는 관리되지 않는 계정에 액세스할 필요가 없습니다. AWS Control Tower 콘솔에는 지정된 계정에 대해 외부에서 생성한 AWS Config 규칙 수가 표시됩니다. **계정 세부 정보** 페이지의 **외부 Config 규칙 준수** 탭에서 이러한 외부 규칙에 대한 세부 정보를 볼 수 있습니다.
+  애그리게이터를 생성하기 위해 AWS Control Tower는 조직을 설명하고 그 아래에 계정을 나열하는 데 필요한 권한을 가진 역할을 추가합니다. `AWSControlTowerConfigAggregatorRoleForOrganizations` 역할에는 `AWSConfigRoleForOrganizations` 관리형 정책 그리고 `config.amazonaws.com`과의 신뢰 관계가 필요합니다.

**참고**  
 * AWS Control Tower가 기존 조직 수준 구성 집계자에서 서비스 연결 구성 집계자로 마이그레이션했기 때문에 랜딩 존 버전 4.0을 사용하는 고객은이 역할이 필요하지 않습니다. * 

**참고**  
 랜딩 존이 포함된 조직에서 신뢰할 수 있는 액세스를 활성화하면 AWS Control Tower는 역할을 생성하고 리소스를 관리하며 조직의 모든 계정에 대한 데이터를 읽을 수 있습니다. 신뢰할 수 있는 액세스를 통해 등록 및 등록 여부와 관계없이 조직의 모든 계정 또는 OU를 AWS Control Tower에서 사용할 수 ** *있습니다*.

역할에 연결된 IAM 정책(JSON 아티팩트)은 다음과 같습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
        "Effect": "Allow",
        "Action": [
          "organizations:ListAccounts",
          "organizations:DescribeOrganization",
          "organizations:ListAWSServiceAccessForOrganization"
         ],
       "Resource": "*"
      }
    ]
  }
```

------

다음은 `AWSControlTowerConfigAggregatorRoleForOrganizations` 신뢰 관계입니다.

```
{
    "Version": "2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
        "Service": "config.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
}
```

관리 계정에이 기능을 배포하기 위해 관리형 정책에 다음 권한이 추가됩니다. `AWSControlTowerServiceRolePolicy`이 정책은 AWS Config 애그리게이터를 생성할 때 `AWSControlTowerAdmin` 역할이 사용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "config:PutConfigurationAggregator",
          "config:DeleteConfigurationAggregator",
          "iam:PassRole"
          ],
        "Resource": [
          "arn:aws:iam::123456789012:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations",
          "arn:aws:config:us-east-1:123456789012:config-aggregator/"
          ]
        },
      {
        "Effect": "Allow",
        "Action": "organizations:EnableAWSServiceAccess",
        "Resource": "*"
      }
    ]
}
```

------

생성된 새 리소스: `AWSControlTowerConfigAggregatorRoleForOrganizations` 및 `aws-controltower-ConfigAggregatorForOrganizations`

준비가 되면 계정을 개별적으로 등록하거나 OU를 등록하여 그룹으로 등록할 수 있습니다. 계정을 등록하면에서 규칙을 생성하면 AWS Config AWS Control Tower가 새 규칙을 감지합니다. 애그리게이터는 외부 규칙 수를 표시하고 계정에 대한 각 외부 규칙의 세부 정보를 볼 수 있는 AWS Config 콘솔 링크를 제공합니다. AWS Config 콘솔 및 AWS Control Tower 콘솔의 정보를 사용하여 계정에 대해 적절한 제어가 활성화되어 있는지 확인합니다.

## AWS Control Tower 감사 계정에 대한 프로그래밍 역할 및 신뢰 관계
<a name="stacksets-and-roles"></a>

감사 계정에 로그인하고 역할을 수임하여 다른 계정을 프로그래밍 방식으로 검토할 수 있습니다. 감사 계정을 이용해 다른 계정에 수동으로 로그인할 수 없습니다.

감사 계정은 AWS Lambda 함수에만 부여된 일부 역할을 통해 다른 계정에 대한 프로그래밍 방식의 액세스를 제공합니다. 보안을 위해 이러한 역할은 다른 역할과 *신뢰 관계*가 있으므로 역할을 사용할 수 있는 조건이 엄격하게 정의됩니다.

AWS Control Tower 스택 `StackSet-AWSControlTowerBP-BASELINE-ROLES`는 감사 계정에서 다음과 같은 프로그래밍 전용 교차 계정 IAM 역할을 생성합니다.
+ **aws-controltower-AdministratorExecutionRole**
+ **aws-controltower-ReadOnlyExecutionRole**

AWS Control Tower 스택 `StackSet-AWSControlTowerSecurityResources`는 감사 계정에서 다음과 같은 프로그래밍 전용 교차 계정 IAM 역할을 생성합니다.
+ **aws-controltower-AuditAdministratorRole**
+ **aws-controltower-AuditReadOnlyRole**

`ReadOnlyExecutionRole:` 이 역할을 사용하면 감사 계정이 조직 전체에서 Amazon S3 버킷의 객체를 읽을 수 있습니다(메타데이터 액세스만 허용하는 `SecurityAudit` 정책과 대조적임).

**aws-controltower-AdministratorExecutionRole:**
+ 관리자 권한이 있음
+ 콘솔에서 수임할 수 없음
+ 감사 계정의 역할(`aws-controltower-AuditAdministratorRole`)만 수임할 수 있음 

다음 아티팩트는 `aws-controltower-AdministratorExecutionRole`에 대한 신뢰 관계를 보여줍니다. 자리 표시자 번호 `012345678901`은 감사 계정의 `Audit_acct_ID` 번호로 대체됩니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditAdministratorRole"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-AuditAdministratorRole:**
+  AWS Lambda 서비스에서만 수임할 수 있습니다.
+ 문자열 **log**로 시작하는 이름이 있는 Amazon S3 객체에 대해 읽기(가져오기) 및 쓰기(입력) 작업을 수행할 수 있는 권한이 있습니다.

**연결된 정책:**

1. **AWSLambdaExecute** AWS 관리형 정책

2. **AssumeRole-aws-controltower-AuditAdministratorRole** – 인라인 정책 – AWS Control Tower에서 생성, 아티팩트는 다음과 같습니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
	{
	"Action": [
		 "sts:AssumeRole"
		 ],
	"Resource": [
		 "arn:aws:iam::*:role/aws-controltower-AdministratorExecutionRole"
		 ],
	"Effect": "Allow"
	}
   ]
}
```

------

다음 아티팩트는 `aws-controltower-AuditAdministratorRole`에 대한 신뢰 관계를 보여줍니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-ReadOnlyExecutionRole:**
+ 콘솔에서 수임할 수 없음
+ 감사 계정의 다른 역할(`AuditReadOnlyRole`)만 수임할 수 있음

다음 아티팩트는 `aws-controltower-ReadOnlyExecutionRole`에 대한 신뢰 관계를 보여줍니다. 자리 표시자 번호 `012345678901`은 감사 계정의 `Audit_acct_ID` 번호로 대체됩니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditReadOnlyRole "
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

**aws-controltower-AuditReadOnlyRole:**
+  AWS Lambda 서비스에서만 수임할 수 있습니다.
+ 문자열 **log**로 시작하는 이름이 있는 Amazon S3 객체에 대해 읽기(가져오기) 및 쓰기(입력) 작업을 수행할 수 있는 권한이 있습니다.

**연결된 정책:**

1. **AWSLambdaExecute** AWS 관리형 정책

2. **AssumeRole-aws-controltower-AuditReadOnlyRole** – 인라인 정책 – AWS Control Tower에서 생성, 아티팩트는 다음과 같습니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
	{
	"Action": [
		"sts:AssumeRole"
	],
	"Resource": [
		"arn:aws:iam::*:role/aws-controltower-ReadOnlyExecutionRole"
	],
	"Effect": "Allow"
   }
  ]
}
```

------

다음 아티팩트는 `aws-controltower-AuditAdministratorRole`에 대한 신뢰 관계를 보여줍니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## IAM 역할을 사용한 자동화된 계정 프로비저닝
<a name="automated-provisioning"></a>

보다 자동화된 방식으로 Account Factory 계정을 구성하려면 AWS Control Tower 관리 계정에서 Lambda 함수를 만들면 됩니다. 이는 멤버 계정에서 [**AWSControlTowerExecution** 역할을 수임](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/)합니다. 그러면 관리 계정에서 이 역할을 사용하여 각 멤버 계정에서 원하는 구성 단계를 수행합니다.

 Lambda 함수를 사용하여 계정을 프로비저닝하는 경우 이 작업을 수행할 ID에는 `AWSServiceCatalogEndUserFullAccess` 외에도 다음 IAM 권한 정책이 있어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSControlTowerAccountFactoryAccess",
            "Effect": "Allow",
            "Action": [
                "sso:GetProfile",
                "sso:CreateProfile",
                "sso:UpdateProfile",
                "sso:AssociateProfile",
                "sso:CreateApplicationInstance",
                "sso:GetSSOStatus",
                "sso:GetTrust",
                "sso:CreateTrust",
                "sso:UpdateTrust",
                "sso:GetPeregrineStatus",
                "sso:GetApplicationInstance",
                "sso:ListDirectoryAssociations",
                "sso:ListPermissionSets",
                "sso:GetPermissionSet",
                "sso:ProvisionApplicationInstanceForAWSAccount",
                "sso:ProvisionApplicationProfileForAWSAccountInstance",
                "sso:ProvisionSAMLProvider",
                "sso:ListProfileAssociations",
                "sso-directory:ListMembersInGroup",
                "sso-directory:AddMemberToGroup",
                "sso-directory:SearchGroups",
                "sso-directory:SearchUsers",
                "sso-directory:CreateUser",
                "sso-directory:DescribeGroups",
                "sso-directory:DescribeDirectory",
                "sso-directory:GetUserPoolInfo",
                "controltower:CreateManagedAccount",
                "controltower:DescribeManagedAccount",
                "controltower:DeregisterManagedAccount",
                "s3:GetObject",
                "organizations:describeOrganization",
                "sso:DescribeRegisteredRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

AWS Control Tower Account Factory에서 AWS IAM Identity Center와 상호 작용하려면 `sso:GetPeregrineStatus`, `sso:ProvisionApplicationInstanceForAWSAccount``sso:ProvisionApplicationProfileForAWSAccountInstance`, 및 권한이 `sso:ProvisionSAMLProvide` 필요합니다.