

# 교차 서비스 혼동된 대리자 방지
<a name="security-iam-cwim-confused-deputy"></a>

혼동된 대리인은 다른 엔터티에 의해 작업을 수행하도록 강요받는 엔터티(서비스 또는 계정)입니다. 이러한 유형의 가장은 교차 계정과 교차 서비스에서 발생할 수 있습니다.

혼동된 대리자를 방지하기 위해 AWS에서는 AWS 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다. 이 섹션에서는 Internet Monitor와 관련된 교차 서비스 혼동 대리자 방지를 주로 설명합니다. 그러나 *IAM 사용 설명서*의 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) 섹션에서 이 주제를 자세히 알아볼 수 있습니다.

리소스에 액세스하기 위해 IAM이 Internet Monitor에 부여하는 권한을 제한하려면 리소스 정책에 전역 조건 컨텍스트 키 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)를 사용하는 것이 좋습니다.

이러한 두 전역 조건 컨텍스트 키와 AWS 계정 ID를 포함하는 `aws:SourceArn` 값을 모두 사용하는 경우, `aws:SourceAccount` 값 및 `aws:SourceArn`의 AWS 계정은 동일한 정책 명령문에서 사용할 경우 반드시 동일한 AWS 계정 ID를 사용해야 합니다.

Internet Monitor의 경우에 대한 `aws:SourceAccount`의 계정 ID와 `aws:SourceArn`용 모니터 ARN을 지정합니다. 교차 서비스 액세스의 경우 `aws:SourceArn`용 모니터 ARN도 사용합니다.

**참고**  
혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 리소스의 **전체 ARN**이 포함된 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용하는 것입니다. 전체 ARN을 모를 경우 또는 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(`*`)를 포함한 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용합니다. 예를 들어 `arn:aws:internetmonitor:us-east-1:{{111122223333}}:*`입니다.

다음은 혼동된 대리자 문제를 방지하는 방법을 보여주는 역할 수임 정책의 예입니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "internetmonitor.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:internetmonitor:us-east-1:{{111122223333}}:monitor/confused-deputy-monitor"
      },
      "StringEquals": {
        "aws:SourceAccount": "111122223333"
      }
    }
  }
}
```

------