

在仔細考慮之後，我們決定停止 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)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 針對 使用以身分為基礎的政策 (IAM 政策)
<a name="using-identity-based-policies"></a>

以下是以身分為基礎的政策範例，此範例會示範帳戶管理員如何將許可政策附加至 IAM 身分 (即使用者、群組和角色)，並藉此授予許可，以對資源執行操作。

**重要**  
建議您先檢閱介紹主題，理解可用來管理 資源存取的基本槪念和選項。如需詳細資訊，請參閱[管理您的 資源之存取許可的概觀](access-control-overview.md)。

**Topics**
+ [使用主控台所需的許可](#console-permissions)
+ [之 Amazon 受管 (預先定義) 政策](#access-policy-aws-managed-policies)
+ [客戶受管政策範例](#access-policy-customer-managed-examples)

以下顯示許可政策範例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1473028104000",
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:CreateApplication"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

此政策具有一個陳述式：
+ 第一個陳述式透過使用應用程式的 Amazon Resource Name (ARN)，來授與資源上的一個動作 (`kinesisanalytics:CreateApplication`) 許可。在這個案例中，ARN 指定萬用字元 (\$1) 來表示為任何資源授予許可。

如需顯示所有 API 操作與其適用資源的資料表，請參閱 [API 許可：動作、許可與資源參考](api-permissions-reference.md)。

## 使用主控台所需的許可
<a name="console-permissions"></a>

如要讓使用者在主控台上作業，您必須授予必要的許可。舉例來說，如果您希望使用者擁有建立應用程式的許可，請授與許可向他們展示帳戶中的串流來源，以便使用者可以在主控台上設定輸入和輸出。

我們建議下列作法：
+ 使用 Amazon 受管政策授予使用者許可。如需可用政策，請參閱 [之 Amazon 受管 (預先定義) 政策](#access-policy-aws-managed-policies)。
+ 建立自訂政策。在此情況下，我們建議您檢閱本節中提供的範例。如需詳細資訊，請參閱[客戶受管政策範例](#access-policy-customer-managed-examples)。





## 之 Amazon 受管 (預先定義) 政策
<a name="access-policy-aws-managed-policies"></a>

AWS 提供由 建立和管理的獨立 IAM 政策，以解決許多常見的使用案例 AWS。這些 Amazon 受管政策會授予常用案例所需的許可，讓您不需調查需要哪些許可。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [Amazon 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

您可將下列 Amazon 受管政策附加到帳戶中的使用者，這些政策專屬於：
+ **`AmazonKinesisAnalyticsReadOnly`**：授與許可給可讓使用者列出應用程式和檢閱輸入/輸出組態的動作。它還授予許可，允許使用者檢視 Kinesis 串流和 Firehose 交付串流的清單。應用程式正在執行時，使用者可以在主控台中檢視來源資料和即時分析結果。

   
+ **`AmazonKinesisAnalyticsFullAccess`**：授與許可給所有可讓使用者建立和管理應用程式的動作和其他許可。但是，請注意以下內容：

   
  + 這些許可不足以讓使用者想要在主控台中建立新的 IAM 角色 (僅能允許使用者選取現有角色)。如果您希望讓使用者在主控台中建立 IAM 角色，請新增 `IAMFullAccess` Amazon 受管政策。

     
  + 設定應用程式時，使用者必須具有`iam:PassRole` 動作的許可，才能指定 IAM 角色。此 Amazon 受管政策只會針對字首為 `service-role/kinesis-analytics` 的 IAM 角色授予使用者 `iam:PassRole` 動作許可。

    如果使用者想用沒有此字首的角色來設定應用程式，您必須先明確授與使用者對該角色之 `iam:PassRole` 動作許可。

您也可以建立自訂 IAM 政策，以允許動作與資源的許可。您可以將這些自訂政策連接至需要這些許可的使用者或群組。

## 客戶受管政策範例
<a name="access-policy-customer-managed-examples"></a>

本節的範例提供一組範本政策可供您連接到使用者。如果您在建立政策方面是新手，我們建議您先在自己的帳戶中建立使用者。然後依序將策略附加到使用者，如本節所述步驟。當您將政策連接到使用者時，即可使用主控台來驗證每個政策的效果。

起初，使用者沒有許可且無法在主控台進行任何操作。隨著您將政策連接到使用者，便可以驗證使用者在主控台上能夠執行各種動作。 

我們建議您使用兩個瀏覽器視窗。在一個視窗中，建立使用者並授予許可。在另一個 中， AWS 管理主控台 使用使用者的登入資料登入 ，並在您授予許可時驗證許可。

 如需相關範例，以了解如何建立可擔任應用程式之執行角色的 IAM 角色，請參閱*《IAM 使用者指南》*中的[建立 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。

**Topics**
+ [步驟 1：建立 IAM 使用者](#console-permissions-createuser)
+ [步驟 2：允許非特定動作的使用者許可](#console-permissions-grant-non-ka-permissions)
+ [步驟 3：允許使用者查看應用程式清單與詳細資訊](#console-permissions-grant-list-applications)
+ [步驟 4：允許使用者啟動特定應用程式](#console-permissions-start-app)
+ [步驟 5：允許使用者建立應用程式](#console-permissions-grant-create-applications)
+ [步驟 6：允許應用程式使用 Lambda 預處理](#console-permissions-grant-lambda)



### 步驟 1：建立 IAM 使用者
<a name="console-permissions-createuser"></a>

首先，您需要建立 IAM 使用者，並將使用者新增至擁有管理許可的 IAM 群組，然後將管理許可授與您所建立的 IAM 使用者。然後，您可以使用特殊 URL 和該使用者的登入資料 AWS 來存取 。

如需說明，請前往*《IAM 使用者指南》*中的[建立第一個 IAM 使用者與管理員群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。

### 步驟 2：允許非特定動作的使用者許可
<a name="console-permissions-grant-non-ka-permissions"></a>

首先，針對使用者在使用應用程式時所需的所有非特定動作，授予使用者許可。這包括使用串流的許可 (Amazon Kinesis Data Streams 動作、Amazon Data Firehose 動作），以及 CloudWatch 動作的許可。將下列政策附加到使用者。

您必須提供要授與 `iam:PassRole` 許可的 IAM 角色名稱，或指定萬用字元 (\$1) 表示所有 IAM 角色來更新政策。這不是安全的做法；但您在此測試期間可能沒有建立特定的 IAM 角色。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesis:CreateStream",
                "kinesis:DeleteStream",
                "kinesis:DescribeStream",
                "kinesis:ListStreams",
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:ListDeliveryStreams"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "logs:GetLogEvents",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListPolicyVersions",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/service-role/role-name"
        }
    ]
}
```

------

### 步驟 3：允許使用者查看應用程式清單與詳細資訊
<a name="console-permissions-grant-list-applications"></a>

以下政策會授予使用者下列許可：
+ `kinesisanalytics:ListApplications` 動作的許可，以便使用者檢視應用程式清單。此為服務層級的 API 呼叫，因此要指定 "\$1" 做為 `Resource` 值。
+ `kinesisanalytics:DescribeApplication`動作的許可，以便您取得有關任何應用程式的資訊。

將此政策新增至使用者。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:ListApplications"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:DescribeApplication"
            ],
            "Resource": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/*"
        }
    ]
}
```

------

 用使用者憑證登入主控台，以驗證這些許可。

### 步驟 4：允許使用者啟動特定應用程式
<a name="console-permissions-start-app"></a>

如果您希望使用者能夠啟動其中一個現有的應用程式，請將下列政策附加至使用者。此政策會提供 `kinesisanalytics:StartApplication` 動作的許可。您必須提供您的帳戶 ID、 AWS 區域和應用程式名稱來更新政策。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:StartApplication"
            ],
            "Resource": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/application-name"
        }
    ]
}
```

------

### 步驟 5：允許使用者建立應用程式
<a name="console-permissions-grant-create-applications"></a>

如果您希望使用者建立應用程式，可將下列政策附加至使用者。您必須更新政策，並提供 AWS 區域、您的帳戶 ID，以及您希望使用者建立的特定應用程式名稱，或是「\$1」，讓使用者可以指定任何應用程式名稱 （進而建立多個應用程式）。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1473028104000",
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:CreateApplication"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisanalytics:StartApplication",
                "kinesisanalytics:UpdateApplication",
                "kinesisanalytics:AddApplicationInput",
                "kinesisanalytics:AddApplicationOutput"
            ],
            "Resource": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/application-name"
        }
    ]
}
```

------

### 步驟 6：允許應用程式使用 Lambda 預處理
<a name="console-permissions-grant-lambda"></a>

如果您希望應用程式能夠使用 Lambda 預先處理，請將下列政策附加至該角色。

```
     {
       "Sid": "UseLambdaFunction",
       "Effect": "Allow",
       "Action": [
           "lambda:InvokeFunction",
           "lambda:GetFunctionConfiguration"
       ],
       "Resource": "<FunctionARN>"
   }
```