

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

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

# ​ 的身分驗證與存取控制
<a name="authentication-and-access-control"></a>

存取 需要憑證。這些登入資料必須具有存取 AWS 資源的許可，例如應用程式或 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。下列各節提供如何使用 [AWS Identity and Access Management (IAM) 和 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 的詳細資訊，以協助您安全存取資源。

## 存取控制
<a name="access-control"></a>

您可以持有效登入資料為自己的請求進行身分驗證，但還須具備許可才能建立或存取 資源。例如，您必須具有許可才能建立應用程式。

以下章節說明如何管理 的許可。我們建議您先閱讀概觀。
+ [管理您的 資源之存取許可的概觀](access-control-overview.md)
+ [針對 使用以身分為基礎的政策 (IAM 政策)](using-identity-based-policies.md)
+ [API 許可：動作、許可與資源參考](api-permissions-reference.md)

## 使用身分驗證
<a name="security_iam_authentication"></a>

身分驗證是您 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色身分進行身分驗證。

您可以使用身分來源的登入資料，例如 AWS IAM Identity Center (IAM Identity Center)、單一登入身分驗證或 Google/Facebook 登入資料，以聯合身分的形式登入。如需有關登入的詳細資訊，請參閱《AWS 登入 使用者指南》**中的[如何登入您的 AWS 帳戶](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

對於程式設計存取， AWS 提供 SDK 和 CLI 以密碼編譯方式簽署請求。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS 第 4 版簽署程序](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 帳戶 根使用者
<a name="security_iam_authentication-rootuser"></a>

 當您建立 時 AWS 帳戶，您會從一個名為 AWS 帳戶 *theroot 使用者的*登入身分開始，該身分可完整存取所有 AWS 服務 和 資源。強烈建議不要使用根使用者來執行日常任務。有關需要根使用者憑證的任務，請參閱《IAM 使用者指南》**中的[需要根使用者憑證的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### 聯合身分
<a name="security_iam_authentication-federated"></a>

最佳實務是要求人類使用者使用聯合身分提供者，以 AWS 服務 使用臨時憑證存取 。

*聯合身分*是來自您的企業目錄、Web 身分提供者的使用者，或使用來自身分來源的 AWS 服務 憑證存取 Directory Service 。聯合身分會擔任角色，而該角色會提供臨時憑證。

若需集中化管理存取權限，建議使用 AWS IAM Identity Center。如需詳細資訊，請參閱 *AWS IAM Identity Center 使用者指南*中的[什麼是 IAM Identity Center？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

### IAM 使用者和群組
<a name="security_iam_authentication-iamuser"></a>

*IAM 使用者*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)是一種身分具備單人或應用程式的特定許可權。建議以臨時憑證取代具備長期憑證的 IAM 使用者。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[要求人類使用者使用聯合身分提供者，以 AWS 使用臨時憑證存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) 。

[IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)**會指定 IAM 使用者集合，使管理大量使用者的許可權更加輕鬆。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 使用者的使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*IAM 角色*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)的身分具有特定許可權，其可以提供臨時憑證。您可以透過[從使用者切換到 IAM 角色 （主控台） ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或呼叫 AWS CLI 或 AWS API 操作來擔任角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[擔任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色適用於聯合身分使用者存取、臨時 IAM 使用者許可、跨帳戶存取權與跨服務存取，以及在 Amazon EC2 執行的應用程式。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# 管理您的 資源之存取許可的概觀
<a name="access-control-overview"></a>

**警告**  
針對新專案，我們建議您優先選擇新的 Managed Service for Apache Flink Studio，而非 for SQL 應用程式。Managed Service for Apache Flink Studio 易於使用且具備進階分析功能，可讓您在幾分鐘內建置複雜的串流處理應用程式。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。

**注意**  
*帳戶管理員* (或管理員使用者) 是具有管理員權限的使用者。如需詳細資訊，請參《[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)》中的 *IAM 最佳實務*。

**Topics**
+ [資源與操作](#access-control-resources)
+ [了解資源所有權](#access-control-resource-ownership)
+ [管理資源存取](#manage-access-overview)
+ [指定政策元素：動作、效果和委託人](#specify-policy-elements)
+ [在政策中指定條件](#specifying-conditions-overview)

## 資源與操作
<a name="access-control-resources"></a>

在 中，主要的資源是*應用程式*。在政策中，您使用 Amazon Resource Name (ARN) 來識別要套用政策的資源。

這些資源都有與其相關的唯一 Amazon Resource Name (ARN)，如下表所示。


****  

| 資源類型 | ARN 格式 | 
| --- | --- | 
| 應用程式 |  `arn:aws:kinesisanalytics:region:account-id:application/application-name`  | 

 提供一組用於處理資源的操作。如需可用操作的清單，請參閱 [動作](API_Operations.md)。

## 了解資源所有權
<a name="access-control-resource-ownership"></a>

 AWS 帳戶 擁有在帳戶中建立的資源，無論誰建立資源。具體而言，資源擁有者是驗證資源建立請求 AWS 帳戶 的[委託人實體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) （即根帳戶、使用者或 IAM 角色） 的 。下列範例說明其如何運作：
+ 如果您使用 的根帳戶登入 AWS 帳戶 資料來建立應用程式，則您的 AWS 帳戶 是資源的擁有者。(在 中，資源即應用程式。)
+ 如果您在 中建立使用者， AWS 帳戶 並將建立應用程式的許可授予該使用者，則使用者可以建立應用程式。不過，使用者所屬 AWS 帳戶的 擁有應用程式資源。我們強烈建議您將許可授與角色，而非使用者。
+ 如果您在 中建立 AWS 帳戶 具有建立應用程式許可的 IAM 角色，則任何可以擔任該角色的人都可以建立應用程式。使用者所屬 AWS 帳戶的 擁有應用程式資源。

## 管理資源存取
<a name="manage-access-overview"></a>

*許可政策*描述誰可以存取哪些資源。下一節說明可用來建立許可政策的選項。

**注意**  
本節著重討論如何在 ​ 的環境中使用 IAM，它不提供 IAM 服務的詳細資訊。如需完整的 IAM 文件，請參閱 *IAM 使用者指南*中的[什麼是 IAM？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)。如需 IAM 政策語法和說明的詳細資訊，請參閱 *IAM 使用者指南*中的 [IAM JSON 政策參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

連接至 IAM 身分的政策稱為*身分識別型*政策 (IAM 政策)。附加至資源的政策稱為*以資源為基礎*的政策。 僅支援以身分為基礎的政策 (IAM 政策)。

**Topics**
+ [身分類型政策 (IAM 政策)](#manage-access-iam-policies)
+ [資源型政策](#manage-access-resource-policies)

### 身分類型政策 (IAM 政策)
<a name="manage-access-iam-policies"></a>

您可以將政策連接到 IAM 身分。例如，您可以執行下列動作：
+ **將許可政策連接至您帳戶中的使用者或群組**：若要授予使用者建立資源 (例如資料表) 的許可，您可以將許可政策附加至使用者或其所屬的群組。
+ **將許可政策連接至角色 (授予跨帳戶許可)**：您可以將身分識別型許可政策連接至 IAM 角色，藉此授予跨帳戶許可。例如，帳戶 A 中的管理員可以建立角色，將跨帳戶許可授予另一個 AWS 帳戶 （例如帳戶 B) 或 Amazon 服務，如下所示：

  1. 帳戶 A 管理員建立 IAM 角色，並將許可政策連接到可授與帳戶 A 中資源許可的角色。

  1. 帳戶 A 管理員會將信任政策連接至將帳戶 B 識別為可擔任角色之主體的角色。

  1. 帳戶 B 管理員即可將擔任該角色的許可委派給帳戶 B 中的任何使用者。這麼做可讓帳戶 B 的使用者建立或存取帳戶 A 的資源。如果您想要授予 Amazon 服務擔任該角色的許可，則信任政策中的主體也可以是 Amazon 服務主體。

  如需使用 IAM 來委派許可的相關資訊，請參閱《IAM 使用者指南》**中的[存取管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

下列是授予許可給 `kinesisanalytics:CreateApplication ` 動作的範例政策，此為建立應用程式的必要動作。

**注意**  
此為簡介範例政策。當您將政策連接到使用者時，使用者將能夠使用 AWS CLI 或 AWS SDK 建立應用程式。但是使用者需要更多許可來配置輸入和輸出。此外，使用者在使用主控台時需要更多許可。後面的章節提供了更多資訊。

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

****  

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

------

如需搭配 使用身分識別型政策的詳細資訊，請參閱 [針對 使用以身分為基礎的政策 (IAM 政策)](using-identity-based-policies.md)。如需使用者、群組、角色和許可的詳細資訊，請參閱《IAM 使用者指南》**中的[身分 (使用者、群組和角色)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。

### 資源型政策
<a name="manage-access-resource-policies"></a>

其他服務 (例如 Amazon S3) 也支援以資源為基礎的許可政策。例如，您可以附加政策到 S3 儲存貯體，以管理存取許可到該儲存貯體。 不支援以資源為基礎的政策。

## 指定政策元素：動作、效果和委託人
<a name="specify-policy-elements"></a>

對於每項資源，該服務都會定義一組 API 操作。定義一組您可在政策中指定的動作，以授予這些 API 操作的許可。為了執行 API 操作，某些 API 操作可能需要多個動作的許可。如需資源與 API 操作的詳細資訊，請參閱 [資源與操作](#access-control-resources) 與 [動作](API_Operations.md)。

以下是最基本的政策元素：
+ **資源**：您使用 Amazon Resource Name (ARN) 識別欲套用政策的資源。如需詳細資訊，請參閱[資源與操作](#access-control-resources)。
+ **動作**：使用動作關鍵字識別您要允許或拒絕的資源操作。例如，您可以使用 `create` 來允許使用者建立應用程式。
+ **效果**：您可以指定使用者請求特定動作時會有什麼效果 (允許或拒絕)。如果您未明確授予存取 (允許) 資源，則隱含地拒絕存取。您也可以明確拒絕資源存取，這樣做可確保使用者無法存取資源，即使不同政策授予存取也是一樣。
+ **委託人**：在身分識別型政策 (IAM 政策) 中，政策所連接的使用者就是隱含委託人。對於以資源為基礎的政策，您可以指定想要收到許可的使用者、帳戶、服務或其他實體 (僅適用於以資源為基礎的政策)。 不支援以資源為基礎的政策。

如需進一步了解有關 IAM 政策語法和說明的詳細資訊，請參閱*《IAM 使用者指南》*中的 [IAM JSON 政策參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

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

## 在政策中指定條件
<a name="specifying-conditions-overview"></a>

當您授予許可時，可以使用存取政策語言來指定政策應該何時生效的條件。例如，建議只在特定日期之後套用政策。如需使用政策語言指定條件的詳細資訊，請參閱*IAM 使用者指南*中的[條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)。

欲表示條件，您可以使用預先定義的條件金鑰。沒有 特定的條件金鑰。不過，您可以視需要使用 AWS全局條件索引鍵。如需 AWS全系列金鑰的完整清單，請參閱《*IAM 使用者指南*》中的[條件的可用金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)。

# 針對 使用以身分為基礎的政策 (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>"
   }
```

# API 許可：動作、許可與資源參考
<a name="api-permissions-reference"></a>

當您設定[存取控制](authentication-and-access-control.md#access-control)並撰寫可連接至 IAM 身分 (身分類型政策) 的許可政策時，可以參考下列資料表。資料表清單每個 API 操作、您可以授予執行動作許可的對應動作，以及您可以授予許可 AWS 的資源。您在政策的 `Action` 欄位中指定動作，然後在政策的 `Resource` 欄位中指定資源值。

您可以在政策中使用 AWS整體條件索引鍵來表達條件。如需 AWS全系列金鑰的完整清單，請參閱《*IAM 使用者指南*》中的[可用金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)。

**注意**  
若要指定動作，請使用後接 API 操作名稱的 `kinesisanalytics` 字首 (例如，`kinesisanalytics:AddApplicationInput`)。

使用捲軸查看資料表的其餘部分。




**API 和動作所需要的許可**  

|  API 操作 | 所需許可 (API 動作) | Resources | 
| --- | --- | --- | 
|  [AddApplicationInput](API_AddApplicationInput.md)   |  kinesisanalytics:AddApplicationInput  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [AddApplicationOutput](API_AddApplicationOutput.md)   |  kinesisanalytics:AddApplicationOutput  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [AddApplicationReferenceDataSource](API_AddApplicationReferenceDataSource.md)   |  kinesisanalytics:AddApplicationReferenceDataSource  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [CreateApplication](API_CreateApplication.md)   |  kinesisanalytics:CreateApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [DeleteApplication](API_DeleteApplication.md)   |  kinesisanalytics:DeleteApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [DeleteApplicationOutput](API_DeleteApplicationOutput.md)   |  kinesisanalytics:DeleteApplicationOutput  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [DeleteApplicationReferenceDataSource](API_DeleteApplicationReferenceDataSource.md)   |  kinesisanalytics:DeleteApplicationReferenceDataSource  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [DescribeApplication](API_DescribeApplication.md)   |  kinesisanalytics:DescribeApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [DiscoverInputSchema](API_DiscoverInputSchema.md)   |  kinesisanalytics:DiscoverInputSchema  |  \$1  | 
|  [ListApplications](API_ListApplications.md)   |  kinesisanalytics:ListApplications  |  \$1  | 
|  [StartApplication](API_StartApplication.md)   |  kinesisanalytics:StartApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [StopApplication](API_StopApplication.md)   |  kinesisanalytics:StopApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  [UpdateApplication](API_UpdateApplication.md)   |  kinesisanalytics:UpdateApplication  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 
|  在主控台中存取或取樣資料   |  kinesisanalytics:GetApplicationState  |  `arn:aws:kinesisanalytics: region:accountId:application/application-name`  | 





## GetApplicationState
<a name="api-permissions-reference-gas"></a>

主控台使用名為 `GetApplicationState` 的內部方法來取樣或存取應用程式資料。您的服務應用程式需要具有內部 `kinesisanalytics:GetApplicationState` API 的許可，才能透過 AWS 管理主控台取樣或存取應用程式資料。