

지원 종료 알림: 2025년 12월 15일에 AWS 에 대한 지원이 종료됩니다 AWS IoT 분석. 2025년 12월 15일 이후에는 AWS IoT 분석 콘솔 또는 AWS IoT 분석 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 [AWS IoT 분석 지원 종료를 참조하세요](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html).

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

# 교차 서비스 혼동된 대리인 방지
<a name="cross-service-confused-deputy-prevention"></a>

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 AWS교차 서비스 가장은 혼동된 대리자 문제를 초래할 수 있습니다. 교차 서비스 가장은 한 서비스(*직접적으로 호출하는 서비스*)가 다른 서비스(*직접적으로 호출되는 서비스*)를 직접적으로 호출할 때 발생할 수 있습니다. 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS 에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.

리소스 정책에는 [`aws:SourceArn`](https://docs.aws.amazon.com/ IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [`aws:SourceAccount`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 이렇게 하면 리소스에 다른 서비스를 AWS IoT Analytics 부여하는 권한이 제한됩니다. 두 전역 조건 컨텍스트 키를 모두 사용하는 경우 `aws:SourceAccount` 값과 `aws:SourceArn` 값의 계정은 동일한 정책 문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.

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

**Topics**
+ [Amazon S3 버킷에 대한 예방](#confused-deputy-prevention-with-S3)
+ [Amazon CloudWatch Logs를 통한 예방](#confused-deputy-prevention-with-cloudwatch-logs)
+ [고객 관리형 AWS IoT 분석 리소스에 대한 혼동된 대리자 방지](#confused-deputy-prevention-for-resources-with-customer-managed-storage)

## Amazon S3 버킷에 대한 예방
<a name="confused-deputy-prevention-with-S3"></a>

 AWS IoT 분석 데이터 스토어에 고객 관리형 Amazon S3 스토리지를 사용하는 경우 데이터를 저장하는 Amazon S3 버킷이 혼동된 대리자 문제에 노출될 수 있습니다.

{{예를 들어 Nikki Wolf는 DOC-EXAMPLE-BUCKET}}이라는 고객 소유의 Amazon S3 버킷을 사용합니다. 버킷에는 {{us-east-1}} 리전에서 생성된 AWS IoT 분석 데이터 스토어에 대한 정보가 저장됩니다. 서비스 AWS IoT 분석 보안 주체가 자신을 대신하여 {{DOC-EXAMPLE-BUCKET}}을 쿼리할 수 있도록 하는 정책을 지정합니다. Nikki의 동료인 Li Juan은 자신의 계정에서 {{DOC-EXAMPLE-BUCKET}}을 쿼리하고 결과가 포함된 데이터 세트를 만듭니다. 따라서 AWS IoT 분석 서비스 보안 주체는 Li가 자신의 계정에서 쿼리를 실행했더라도 Li를 대신하여 Nikki의 Amazon S3 버킷을 쿼리했습니다.

이를 방지하기 위해 Nikki는 {{DOC-EXAMPLE-BUCKET}} 정책에 `aws:SourceAccount` 조건 또는 `aws:SourceArn` 조건을 지정할 수 있습니다.

**`aws:SourceAccount` 조건 지정** - 버킷 정책의 다음 예제에서는 Nikki 계정({{123456789012}})의 AWS IoT 분석 리소스만 {{DOC-EXAMPLE-BUCKET}}에 액세스할 수 있도록 지정합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "MyPolicyID",
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotanalytics.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:*:*:{{amzn-s3-demo-bucket}}",
                "arn:aws:s3:*:*:{{amzn-s3-demo-bucket}}/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                }
            }
        }
    ]
}
```

------

**`aws:SourceArn`조건 지정** - 또는 Nikki가 `aws:SourceArn` 조건을 사용할 수도 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "MyPolicyID",
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotanalytics.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:*:*:{{amzn-s3-demo-bucket}}",
                "arn:aws:s3:*:*:{{amzn-s3-demo-bucket}}/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:dataset/{{your-dataset}}",
                        "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:datastore/{{your-datastore}}"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon CloudWatch Logs를 통한 예방
<a name="confused-deputy-prevention-with-cloudwatch-logs"></a>

Amazon CloudWatch Logs를 사용하여 모니터링하는 동안 혼동된 대리자 문제를 방지할 수 있습니다. 다음과 같은 리소스 정책은 다음 항목으로 혼동된 대리자 문제를 방지하는 방법을 보여줍니다.
+ 전역 조건 컨텍스트 키, `aws:SourceArn` 
+  AWS 계정 ID가 `aws:SourceAccount` 인
+ 의 `sts:AssumeRole` 요청과 연결된 고객 리소스 AWS IoT 분석

다음 예제에서 {{123456789012}}을 AWS 계정 ID로 바꾸고 {{us-east-1}}을 AWS IoT 분석 계정의 리전으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "iotanalytics.amazonaws.com"
            },
            "Action": "logs:PutLogEvents",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:*/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                }
            }
        }
    ]
}
```

------

Amazon CloudWatch Logs 활성화 및 구성에 대한 자세한 내용은 [에서 로깅 및 모니터링 AWS IoT 분석](monitoring.md)을 참조하십시오.

## 고객 관리형 AWS IoT 분석 리소스에 대한 혼동된 대리자 방지
<a name="confused-deputy-prevention-for-resources-with-customer-managed-storage"></a>

 AWS IoT 분석 리소스에 대한 작업을 수행할 수 있는 AWS IoT 분석 권한을 부여하면 리소스가 혼동된 대리자 문제에 노출될 수 있습니다. 혼동된 대리자 문제를 방지하려면 다음 예제 리소스 정책을 AWS IoT 분석 사용하여에 부여된 권한을 제한할 수 있습니다.

**Topics**
+ [AWS IoT 분석 채널 및 데이터 스토어에 대한 방지](#confused-deputy-prevention-for-channels-and-datastores)
+ [AWS IoT 분석 데이터 세트 콘텐츠 전송 규칙에 대한 교차 서비스 혼동된 대리자 방지](#confused-deputy-prevention-for-dataset-content-delivery)

### AWS IoT 분석 채널 및 데이터 스토어에 대한 방지
<a name="confused-deputy-prevention-for-channels-and-datastores"></a>

IAM 역할을 사용하여가 사용자를 대신하여 액세스할 AWS IoT 분석 수 있는 AWS 리소스를 제어합니다. 역할이 혼동된 대리자 문제에 노출되지 않도록 하려면 `aws:SourceAccount` 요소에 AWS 계정을 지정하고 역할에 연결하는 신뢰 정책의 `aws:SourceArn` 요소에 AWS IoT 분석 리소스의 ARN을 지정할 수 있습니다.

다음 예제에서 {{123456789012}}을 AWS 계정 ID로 바꾸고 {{arn:aws:iotanalytics:{{aws-region}}:123456789012:channel/DOC-EXAMPLE-CHANNEL}}을 AWS IoT 분석 채널 또는 데이터 스토어의 ARN으로 바꿉니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotanalytics.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                },
                "ArnLike": {
                "aws:SourceArn": "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:{{channel}}/{{your-channel}}"
                }
            }
        }
    ]
}
```

------

채널 및 데이터 스토어의 고객 관리형 S3 스토리지 옵션에 대한 자세한 내용은 *AWS IoT 분석 API 참조*의 [`CustomerManagedChannelS3Storage`](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_CustomerManagedChannelS3Storage.html) 및 [`CustomerManagedDatastoreS3Storage`](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_CustomerManagedDatastoreS3Storage.html) 항목을 참조하십시오.

### AWS IoT 분석 데이터 세트 콘텐츠 전송 규칙에 대한 교차 서비스 혼동된 대리자 방지
<a name="confused-deputy-prevention-for-dataset-content-delivery"></a>

가 Amazon S3 또는에 데이터 세트 쿼리 결과를 전달하기 위해 AWS IoT 분석 수임하는 IAM 역할은 혼동된 대리자 문제에 노출될 AWS IoT Events 수 있습니다. 혼동된 대리자 문제를 방지하려면 `aws:SourceAccount` 요소에 AWS 계정을 지정하고 역할에 연결하는 신뢰 정책의 `aws:SourceArn` 요소에 AWS IoT 분석 리소스의 ARN을 지정합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExampleTrustPolicyDocument",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotanalytics.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:dataset/{{your-dataset}}"
                }
            }
        }
    ]
}
```

------

데이터 세트 콘텐츠 전송 규칙을 구성하는 방법에 대한 자세한 내용은 *AWS IoT 분석 API 참조*의 [`contentDeliveryRules`](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_CreateDataset.html#iotanalytics-CreateDataset-request-contentDeliveryRules) 항목을 참조하십시오.