

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

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

# Amazon Kinesis Data Analytics 的安全性
<a name="security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您將受益於資料中心和網路架構，該架構旨在滿足最安全敏感組織的需求。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：
+ **雲端的安全性** – AWS 負責保護在 AWS Cloud 中執行 AWS 服務的基礎設施。 AWS 也為您提供可安全使用的服務。第三方稽核人員定期檢測及驗證安全的效率也是我們 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)的一部分。若要了解適用於 Kinesis Data Analytics 的合規計劃，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對資料敏感度、組織要求，以及適用法律和法規等其他因素負責。

本文件可協助您了解如何在使用 Kinesis Data Analytics 時套用共同責任模型。下列主題說明如何設定 Kinesis Data Analytics 以符合您的安全與合規目標。您也將了解如何使用其他 Amazon 服務，協助您監控和保護 Kinesis Data Analytics 資源。

**Topics**
+ [Amazon Kinesis Data Analytics for SQL 應用程式中的資料保護](data-protection.md)
+ [Kinesis Data Analytics 中的 Identity and Access Management](iam-role.md)
+ [​ 的身分驗證與存取控制](authentication-and-access-control.md)
+ [監控 Amazon Kinesis Data Analytics](security-monitoring.md)
+ [Amazon Kinesis Data Analytics for SQL 應用程式的合規驗證](akda-java-compliance.md)
+ [Amazon Kinesis Data Analytics 中的恢復能力](disaster-recovery-resiliency.md)
+ [Kinesis Data Analytics for SQL 應用程式中的基礎設施安全](infrastructure-security.md)
+ [適用於 Kinesis Data Analytics 的安全最佳實務](security-best-practices.md)

# Amazon Kinesis Data Analytics for SQL 應用程式中的資料保護
<a name="data-protection"></a>

您可以使用 提供的工具來保護您的資料 AWS。Kinesis Data Analytics 可以使用支援加密資料的 服務，包括 Kinesis Data Streams、Firehose 和 Amazon S3。

## Kinesis Data Analytics 中的資料加密
<a name="data-encryption"></a>

### 靜態加密
<a name="encryption-at-rest"></a>

使用 Kinesis Data Analytics 來加密靜態資料時，請注意以下相關事項：
+ 您可以用 [StartStreamEncryption](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StartStreamEncryption.html) 來加密傳入 Kinesis 資料串流的資料。如需詳細資訊，請參閱[什麼是 Kinesis 資料串流的伺服器端加密？](https://docs.aws.amazon.com/streams/latest/dev/what-is-sse.html)。
+ 輸出資料可以使用 Firehose 靜態加密，將資料存放在加密的 Amazon S3 儲存貯體中。您可以指定 Amazon S3 儲存貯體使用的加密金鑰。如需詳細資訊，請參閱[搭配使用伺服器端加密與 KMS 受管金鑰 (SSE-KMS) 來保護資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)。
+ 您的應用程式碼會進行靜態加密。
+ 您應用程式的參考資料會進行靜態加密。

### 傳輸中加密
<a name="encryption-in-transit"></a>

Kinesis Data Analytics 會對傳輸中的資料進行加密。所有 Kinesis Data Analytics 應用程式都會啟用傳輸中加密功能，且無法停用。

Kinesis Data Analytics 會在下列情況加密傳輸中的資料：
+ 從 Kinesis Data Streams 傳輸到 Kinesis Data Analytics 的資料。
+ 在 Kinesis Data Analytics 內部元件間傳輸的資料。
+ Kinesis Data Analytics 和 Firehose 之間傳輸中的資料。

### 金鑰管理
<a name="key-management"></a>

Kinesis Data Analytics 中的資料加密使用服務管理金鑰。不支援客戶受管金鑰。

# Kinesis Data Analytics 中的 Identity and Access Management
<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 Stream 的許可政策
<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 Stream 的許可政策
<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 Delivery Stream 的許可政策
<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-sourcearn) 和 [aws: SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 全域條件內容金鑰，以限制僅有預期資源產生的請求才能存取角色。

如果您想要僅允許一個資源與跨服務存取相關聯，則請使用 `aws:SourceArn`。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯，請使用 `aws:SourceAccount`。

`aws:SourceArn` 的值必須是 Kinesis Data Analytics 使用之資源的 ARN，並以下列格式指定：`arn:aws:kinesisanalytics:region:account:resource`

解決混淆代理人問題的建議方法，是在完整資源 ARN 使用 `aws:SourceArn` 全域條件內容索引鍵。

如果不知道資源的完整 ARN，或指定了多個資源，請使用 `aws:SourceArn` 索引鍵搭配萬用字元 (\$1) 來表示 ARN 的未知部分。例如：`arn:aws:kinesisanalytics::111122223333:*`。

雖然 Kinesis Data Analytics for SQL API 中的大多數動作 (如 [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)) 都要在特定應用程式的環境中執行，但 [DiscoverInputSchem](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 來全面緩解混淆代理人問題。

可使用 [aws:SourceArnARN](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) 條件索引鍵的對象為您提供給 Kinesis Data Analytics 的角色政策，以及為您產生之角色的信任政策。

為了防範混淆代理人問題，請執行下列步驟：

**如要防範混淆代理人問題**

1. 登入 AWS 管理主控台，並在 [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"
               }
            }
         }
      ]
   }
   ```

------

# ​ 的身分驗證與存取控制
<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 管理主控台取樣或存取應用程式資料。

# 監控 Amazon Kinesis Data Analytics
<a name="security-monitoring"></a>

Kinesis Data Analytics 為您的應用程式提供監控功能。如需詳細資訊，請參閱[監控 SQL 應用程式](monitoring-overview.md)。

# Amazon Kinesis Data Analytics for SQL 應用程式的合規驗證
<a name="akda-java-compliance"></a>

在多個合規計畫中，第三方稽核人員會評估 Amazon Kinesis Data Analytics 的安全性和 AWS 合規性。這些包括 SOC、PCI、HIPAA 等。

如需特定合規計劃範圍內 AWS 的服務清單，請參閱[合規計劃範圍內的 Amazon Services](https://aws.amazon.com/compliance/services-in-scope/)。如需一般資訊，請參閱 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[在 中下載報告 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

您使用 Kinesis Data Analytics 時的合規責任，取決於資料的機密性、您公司的合規目標及適用法律和法規。若您使用 Kinesis Data Analytics 時必須遵循特定標準，如 HIPAA 或 PCI， AWS 會提供資源予以協助：
+ [安全與合規快速入門指南](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) – 這些部署指南討論架構考量，並提供在其中部署以安全與合規為重心的基準環境的步驟 AWS。
+  [HIPAA 安全與合規架構白皮書 ](https://d0.awsstatic.com/whitepapers/compliance/AWS_HIPAA_Compliance_Whitepaper.pdf) – 此白皮書說明公司如何使用 AWS 來建立符合 HIPAA 規範的應用程式。
+ [AWS 合規資源](https://aws.amazon.com/compliance/resources/) – 此工作手冊和指南集合可能適用於您的產業和位置。
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – AWS 此服務會評估資源組態符合內部實務、產業準則和法規的程度。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) – AWS 此服務提供 內安全狀態的完整檢視 AWS ，協助您檢查是否符合安全產業標準和最佳實務。

# Amazon Kinesis Data Analytics 中的恢復能力
<a name="disaster-recovery-resiliency"></a>

 AWS 全球基礎設施是以 AWS 區域和可用區域為基礎建置的。 AWS 區域提供多個實體隔離和隔離的可用區域，這些區域以低延遲、高輸送量和高度備援的網路連接。透過可用區域，您所設計與操作的應用程式和資料庫，就能夠在可用區域之間自動容錯移轉，而不會發生中斷。可用區域的可用性、容錯能力和擴充能力，均較單一或多個資料中心的傳統基礎設施還高。

如需 AWS 區域和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。

除了 AWS 全球基礎設施之外，Kinesis Data Analytics 還提供數種功能，以協助支援您的資料彈性和備份需求。

## 災難復原
<a name="disaster-recovery"></a>

Kinesis Data Firehose 會在無伺服器模式中執行，並透過執行自動遷移，來處理主機降級、可用區域可用性和其他基礎設施相關的問題。發生這種情況時，Kinesis Data Analytics 可確保應用程式的處理過程沒有遺失任何資料。如需詳細資訊，請參閱[將應用程式輸出保存至外部目標的交付模型](failover-checkpoint.md)。

# Kinesis Data Analytics for SQL 應用程式中的基礎設施安全
<a name="infrastructure-security"></a>

作為受管服務，Amazon Kinesis Data Analytics 受到 [Amazon Web Services：安全程序概觀](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)白皮書中所述的 AWS 全球網路安全程序的保護。

您可以使用 AWS 發佈的 API 呼叫，透過網路存取 Kinesis Data Analytics。用戶端必須支援 Transport Layer Security (TLS) 1.2 或更新版本。用戶端也必須支援具備完美轉送私密 (PFS) 的密碼套件，例如臨時 Diffie-Hellman (DHE) 或橢圓曲線臨時 Diffie-Hellman (ECDHE)。現代系統 (如 Java 7 和更新版本) 大多會支援這些模式。

此外，請求必須使用存取金鑰 ID 和與 IAM 主體相關聯的私密存取金鑰來簽署。或者，您可以透過 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) 來產生暫時安全憑證來簽署請求。

# 適用於 Kinesis Data Analytics 的安全最佳實務
<a name="security-best-practices"></a>

在您開發和實作自己的安全政策時，可考慮使用 Amazon Kinesis Data Analytics 提供的多種安全功能。以下最佳實務為一般準則，並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求，因此請將其視為實用建議就好，而不要當作是指示。

## 使用 IAM 角色存取其他 Amazon 服務
<a name="security-best-practices-roles"></a>

您的 Kinesis Data Analytics 應用程式必須具有有效的登入資料，才能存取其他服務中的資源，例如 Kinesis 資料串流、Firehose 交付串流或 Amazon S3 儲存貯體。您不應將 AWS 登入資料直接存放在應用程式或 Amazon S3 儲存貯體中。這些是不會自動輪換的長期憑證，如果遭到盜用，可能會對業務造成嚴重的影響。

反之，您應使用 IAM 角色來管理暫時性憑證，讓應用程式存取其他資源。使用角色時，您不必使用長期憑證來存取其他資源。

如需詳細資訊，請參閱*《IAM 使用者指南》*中的以下主題：
+ [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [常見的角色方案：使用者、應用程式和服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## 在相依資源實作伺服器端加密
<a name="security-best-practices-sse"></a>

Kinesis Data Analytics 中的靜態資料和傳輸中的資料都會進行加密，而且無法停用此加密。您應該在相依資源中實作伺服器端加密，例如 Kinesis 資料串流、Firehose 交付串流和 Amazon S3 儲存貯體。如需在相依資源中實作伺服器端加密的詳細資訊，請參閱 [資料保護](data-protection.md)。

## 使用 CloudTrail 來監控 API 呼叫
<a name="security-best-practices-cloudtrail"></a>

Kinesis Data Analytics 已與 整合 AWS CloudTrail，此服務提供由使用者、角色或 Amazon 服務在 Kinesis Data Analytics 中所採取動作的記錄。

您可以利用 CloudTrail 所收集的資訊來判斷向 Kinesis Data Streams 發出的請求，以及發出請求的 IP 地址、人員、時間和其他詳細資訊。

如需詳細資訊，請參閱[使用 記錄 AWS CloudTrail API 呼叫](logging-using-cloudtrail.md)。