

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

# 역할 신뢰 관계를 위한 선택적 조건
<a name="conditions-for-role-trust"></a>

추가 보안 계층을 AWS Control Tower 환경에 추가하려면 역할 신뢰 정책에 조건을 부과하여 AWS Control Tower의 특정 역할과 상호 작용하는 계정 및 리소스를 제한하면 됩니다. 예를 들어, `AWSControlTowerAdmin` 역할은 광범위한 액세스 권한을 허용하므로 이 역할에 대한 액세스를 추가로 제한할 수 있습니다.

공격자가 리소스에 액세스하지 못하도록 하려면 AWS Control Tower 신뢰 정책을 수동으로 편집하여 정책 설명에 하나 이상의 `aws:SourceArn` 또는 `aws:SourceAccount` 조건부를 추가합니다. 추가적인 보안 모범 사례로, `aws:SourceArn` 조건은 `aws:SourceAccount`보다 더 구체적이며, 특정 계정 및 특정 리소스에 대한 액세스를 제한하기 때문에 이 조건을 추가하는 것이 좋습니다.

리소스의 전체 ARN을 모를 경우 또는 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(\$1)를 사용하여 `aws:SourceArn` 조건을 사용할 수 있습니다. 예를 들어, 리전을 지정하지 않으려는 경우 `arn:aws:controltower:*:123456789012:*`를 사용하면 됩니다.

다음 예제에서는 `aws:SourceArn` IAM 역할 신뢰 정책과 함께 IAM 조건을 사용하는 방법을 보여줍니다. AWS Control Tower 서비스 보안 주체가 **AWSControlTowerAdmin** 역할과 상호 작용하므로 이 역할에 대한 신뢰 관계에 조건을 추가합니다.

예제와 같이 소스 ARN의 형식은 다음과 같습니다. `arn:aws:controltower:${HOME_REGION}:${CUSTOMER_AWSACCOUNT_id}:*` 

`${HOME_REGION}` 및 `${CUSTOMER_AWSACCOUNT_id}` 문자열을 호출 계정의 자체 홈 리전 및 계정 ID로 바꿉니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "controltower.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:controltower:us-west-2:012345678901:*"
        }
      }
    }
  ]
}
```

------

이 예제에서 `arn:aws:controltower:us-west-2:012345678901:*`로 지정된 소스 ARN은 `sts:AssumeRole` 작업을 수행할 수 있는 유일한 ARN입니다. 즉, `us-west-2` 리전에서 계정 ID `012345678901`로 로그인할 수 있는 사용자만 `controltower.amazonaws.com`으로 지정된 AWS Control Tower 서비스에 대해 이 특정 역할과 신뢰 관계가 필요한 작업을 수행할 수 있습니다.

다음 예제에서는 역할 신뢰 정책에 적용된 `aws:SourceAccount` 및 `aws:SourceArn` 조건을 보여줍니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "controltower.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "012345678901"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:controltower:us-west-2:012345678901:*"
        }
      }
    }
  ]
}
```

------

이 예제는 `aws:SourceAccount` 조건 문이 추가된 `aws:SourceArn` 조건 문을 보여줍니다. 자세한 내용은 [교차 서비스 가장 방지](prevent-confused-deputy.md) 섹션을 참조하세요.

 AWS Control Tower의 권한 정책에 대한 일반 정보는 [리소스에 대한 액세스 관리](access-control-manage-access-intro.md) 섹션을 참조하세요.

**권장 사항:**

AWS Control Tower가 생성하는 역할에 조건을 추가하는 것이 좋습니다. 이러한 역할은 다른 AWS 서비스에서 직접 수임하기 때문입니다. 자세한 내용은 이 섹션의 앞부분에 표시된 **AWSControlTowerAdmin**의 예시를 참조하세요. AWS Config 레코더 역할의 경우 `aws:SourceArn` 조건을 추가하고 Config 레코더 ARN을 허용된 소스 ARN으로 지정하는 것이 좋습니다.

**AWSControlTowerExecution**과 같은 역할 또는 모든 관리형 계정의 AWS Control Tower Audit 계정에서 [수임할 수 있는 기타 프로그래밍 역할](https://docs.aws.amazon.com/controltower/latest/userguide/roles-how.html)의 경우 이러한 역할에 대한 신뢰 정책에 `aws:PrincipalOrgID` 조건을 추가하는 것이 좋습니다. 이 정책은 리소스에 액세스하는 보안 주체가 올바른 AWS Organizations의 계정에 속해 있는지 확인합니다. `aws:SourceArn` 조건문은 예상대로 작동하지 않으므로 추가하지 마세요.

**참고**  
드리프트의 경우 특정 상황에서 AWS Control Tower 역할이 재설정될 수 있습니다. 역할을 사용자 지정한 경우 주기적으로 역할을 다시 확인하는 것이 좋습니다.