

신중한 고려 끝에 Amazon Kinesis Data Analytics for SQL 애플리케이션을 중단하기로 결정했습니다.

1. **2025년 9월 1**일부터 Amazon Kinesis Data Analytics for SQL 애플리케이션에 대한 버그 수정은 제공되지 않습니다. 곧 중단될 예정이므로 지원이 제한될 예정이기 때문입니다.

2. **2025년 10월 15**일부터 새 Kinesis Data Analytics for SQL 애플리케이션을 생성할 수 없습니다.

3. **2026년 1월 27**일부터 애플리케이션이 삭제됩니다. Amazon Kinesis Data Analytics for SQL 애플리케이션을 시작하거나 작동할 수 없게 됩니다. 그 시점부터 Amazon Kinesis Data Analytics for SQL에 대한 지원을 더 이상 이용할 수 없습니다. 자세한 내용은 [Amazon Kinesis Data Analytics for SQL 애플리케이션 단종](discontinuation.md) 단원을 참조하십시오.

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

# Kinesis Data Analytics의 ID 및 액세스 관리
<a name="iam-role"></a>

Amazon Kinesis Data Analytics에는 애플리케이션 입력 구성에서 지정한 스트리밍 소스에서 레코드를 읽을 수 있는 권한이 필요합니다. Amazon Kinesis Data Analytics에는 애플리케이션 출력 구성에서 지정한 스트림에 애플리케이션 출력을 기록할 권한도 필요합니다.

Amazon Kinesis Data Analytics가 취할 수 있는 IAM 역할을 생성함으로써 이러한 권한을 부여할 수 있습니다. 이 역할에 부여한 권한은 서비스가 권한을 받았을 때 Amazon Kinesis Data Analytics가 수행할 수 있는 작업을 결정합니다.



**참고**  
IAM 역할을 생성하고자 하는 경우 이 섹션의 정보가 유용합니다. Amazon Kinesis Data Analytics 콘솔에서 애플리케이션을 생성하는 경우 콘솔이 여러분을 대신할 IAM 역할을 생성할 수 있습니다. 콘솔은 자신이 생성하는 IAM 역할에 대해 다음의 명명 규칙을 사용합니다:  

```
kinesis-analytics-ApplicationName
```
역할이 생성되면 IAM 콘솔에서 역할을 검토하고 정책을 연결할 수 있습니다.

각 IAM 역할에는 두 가지 정책이 연계되어 있습니다. 신뢰 정책에서는 역할을 위임할 사용자를 지정합니다. 권한 정책에서(하나 이상 존재할 수 있음) 이 역할을 부여하고자 하는 권한을 지정합니다. 다음 섹션은 정책에 대한 설명으로 IAM 역할 생성 시 사용할 수 있습니다.



## 신뢰 정책
<a name="iam-role-trust-policy"></a>

Amazon Kinesis Data Analytics이 스트리밍 또는 참조 소스에 액세스할 수 있도록 권한을 부여하기 위해 IAM 역할에 다음 신뢰 정책을 연계할 수 있습니다:

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

****  

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

------

## 권한 정책
<a name="iam-role-permissions-policy"></a>

IAM 역할을 생성하여 Amazon Kinesis Data Analytics이 애플리케이션의 스트리밍 소스를 읽도록 하게 하려면, 해당 읽기 작업에 대한 권한을 부여해야 합니다. 소스(예: Kinesis 스트림 또는 Firehose 전송 스트림 또는 Amazon S3 버킷의 참조 소스)에 따라 다음과 같은 권한 정책을 연결할 수 있습니다.



### Kinesis 스트림을 읽을 수 있는 권한 정책
<a name="iam-role-permissions-policy-stream"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadInputKinesis",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:GetShardIterator",
                "kinesis:GetRecords",
                "kinesis:ListShards"
            ],
            "Resource": [
                "arn:aws:kinesis:us-east-1:123456789012:stream/inputStreamName"
            ]
        }
    ]
}
```

------

### Firehose 전송 스트림을 읽을 수 있는 권한 정책
<a name="iam-role-permissions-policy-delivery-stream"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadInputFirehose",
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:Get*"
            ],
            "Resource": [
                "arn:aws:firehose:us-east-1:123456789012:deliverystream/inputFirehoseName"
            ]
        }
    ]
}
```

------

**참고**  
`firehose:Get*` 권한은 Kinesis Data Analytics가 스트림에 액세스하는 데 사용하는 내부 접근자를 나타냅니다. Firehose 전송 스트림에는 퍼블릭 접근자가 없습니다.

애플리케이션 출력 구성에서 Amazon Kinesis Data Analytics가 외부 목적지에 출력을 작성하도록 지정하는 경우, 다음의 권한을 IAM 역할에 부여해야 합니다.

### Kinesis 스트림의 쓰기 권한 정책
<a name="iam-role-permissions-policy-ak-stream"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "WriteOutputKinesis",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": [
                "arn:aws:kinesis:us-east-1:123456789012:stream/output-stream-name"
            ]
        }
    ]
}
```

------

### Firehose 전송 시스템에 대한 쓰기 권한 정책
<a name="iam-role-permissions-policy-af-delivery-stream"></a>



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "WriteOutputFirehose",
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": [
                "arn:aws:firehose:us-east-1:123456789012:deliverystream/output-firehose-name"
            ]
        }
    ]
}
```

------

### Amazon S3 버킷에서 준거 데이터 소스를 읽을 수 있는 권한 정책
<a name="iam-role-permissions-policy-reference"></a>



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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

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

에서 AWS교차 서비스 가장은 한 서비스(호출 서비스)가 다른 서비스(호출 서비스)를 호출할 때 발생할 수 있습니다. 호출 서비스는 다른 고객의 리소스에 대해 적절한 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있으며, 이로 인해 대리인 문제가 발생할 수 있습니다.

혼동된 대리자를 방지하기 위해는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 AWS 제공합니다. 이 섹션에서는 Kinesis Data Analytics와 관련된 서비스 간 혼동 방지 기능에 중점을 두고 있지만, *IAM 사용자 가이드*의 [혼동된 대리인 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) 섹션에서 이 주제에 대해 자세히 알아볼 수 있습니다.

Kinesis Data Analytics for SQL의 경우, 역할 신뢰 정책의 [aws:SourceArn[ 및 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 전역 조건 컨텍스트 키를 사용하여 역할에 대한 액세스를 예상 리소스에 의해 생성된 요청으로만 제한하는 것이 좋습니다.

하나의 리소스만 교차 서비스 액세스와 연결되도록 허용하려는 경우 `aws:SourceArn`을(를) 사용하십시오. 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 `aws:SourceAccount`을(를) 사용하십시오.

`aws:SourceArn`의 값은 Kinesis Data Analytics에서 사용하는 리소스의 ARN이어야 하며, 그것은 다음 형식으로 지정됩니다: `arn:aws:kinesisanalytics:region:account:resource`

혼동된 대리인 문제에 대한 권장 접근 방식은 리소스의 전체 ARN이 포함된 `aws:SourceArn` 글로벌 조건 컨텍스트 키를 사용하는 것입니다.

리소스의 전체 ARN을 모르거나 여러 리소스를 지정한 경우, ARN의 알 수 없는 부분에 대해 와일드카드 문자 (\$1)를 포함한 `aws:SourceArn` 키를 사용하십시오. 예를 들어 `arn:aws:kinesisanalytics::111122223333:*`입니다.

SQL API용 Kinesis Data Analytics에서 [CreateApplication](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_CreateApplication.html), [AddApplicationInput](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationInput.html) 및 [DeleteApplication](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DeleteApplication.html) 같은 대부분의 작업은 특정 애플리케이션의 컨텍스트에서 이루어지지만, [DiscoverInputSchema](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DiscoverInputSchema.html) 작업은 여하한 애플리케이션 문맥으로도 실행되지 않습니다. 즉, 이 작업에 사용되는 역할이 `SourceArn` 조건 키에 리소스를 완전히 지정해서는 안 됩니다. 다음은 와일드카드 ARN을 사용하는 예입니다:

```
{
   ...
   "ArnLike":{
      "aws:SourceArn":"arn:aws:kinesisanalytics:us-east-1:123456789012:*"
   }
   ...
}
```

Kinesis Data Analytics for SQL에서 생성되는 기본 역할은 이 와일드카드를 사용합니다. 이렇게 하면 콘솔 환경에서 입력 스키마 검색이 원활하게 작동할 수 있습니다. 하지만 스키마를 발견한 후에는 전체 ARN을 사용하도록 신뢰 정책을 편집하여 혼동 부정 행위를 완전히 완화하는 것이 좋습니다.

Kinesis Data Analytics에 제공하는 역할 정책과 사용자에 대해 생성된 역할의 신뢰 정책은 [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) 조건 키를 사용할 수 있습니다.

혼동된 대리인 문제를 방지하려면 다음 단계를 수행하십시오: 

**혼동된 대리인 문제를 방지하는 방법**

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. **역할**을 선택한 다음 수정하려는 역할을 선택합니다.

1. **신뢰 정책 편집**을 선택합니다.

1. **신뢰 정책 편집** 페이지에서 기본 JSON 정책을 `aws:SourceArn` 및 `aws:SourceAccount` 글로벌 조건 컨텍스트 키 중 하나 또는 둘 다를 사용하는 정책으로 대체합니다. 다음 정책 예를 참조하십시오:

1. **정책 업데이트**를 선택합니다.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"kinesisanalytics.amazonaws.com"
            },
            "Action":"sts:AssumeRole",
            "Condition":{
               "StringEquals":{
                  "aws:SourceAccount":"Account ID"
               },
               "ArnEquals":{
                  "aws:SourceArn":"arn:aws:kinesisanalytics:us-east-1:123456789012:application/my-app"
               }
            }
         }
      ]
   }
   ```

------