

慎重に検討した結果、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 サービスを実行するインフラストラクチャを保護する 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 を設定する方法を説明します。また、Kinesis Data Analytics リソースのモニタリングや保護に役立つ Amazon のその他のサービスを使用する方法についても説明します。

**Topics**
+ [Amazon Kinesis Data Analytics for SQL Applications でのデータ保護](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 Applications のコンプライアンス検証](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 Applications でのデータ保護
<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 による保管中のデータの暗号化については、以下の点に注意してください。
+ 受信する Kinesis Data Streamsのデータは、[StartStreamEncryption](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StartStreamEncryption.html) を使用して暗号化できます。詳細については、「[Kinesis Data Streams用のサーバー側の暗号化とは](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 ロールには、2 つのポリシーがアタッチされます。信頼ポリシーでは、だれがこのロールを引き受けることができるかを指定します。アクセス権限ポリシー (1 つまたは複数の場合があります) では、このロールに付与するアクセス権限を指定します。次のセクションで、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>

アプリケーションのストリーミングソースからの読み込みを Amazon Kinesis Data Analytics に許可する IAM ロールを作成する場合は、関連する読み取りアクションのアクセス権限を付与する必要があります。ソース (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-sourcearn) および [aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用して、期待されるリソースによって生成されたリクエストのみに、ロールのアクセスを制限することをお勧めします。

クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

`aws:SourceArn` の値は、Kinesis Data Analytics が使用するリソースの ARN でなければなりません。この値は `arn:aws:kinesisanalytics:region:account:resource` 形式で指定されます。

混乱した代理問題から保護するために推奨されるアプローチは、リソースの完全な ARN を指定しながら、`aws:SourceArn` グローバル条件コンテキストキーを使用することです。

リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、`aws:SourceArn`キー で、ARN の未知部分を示すためにワイルドカード文字 (\$1) を使用します。例: `arn:aws:kinesisanalytics::111122223333:*`。

[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) など、Kinesis Data Analytics for SQL API のほとんどのアクションは特定のアプリケーションのコンテキストで実行されますが、[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 マネジメントコンソールにサインインし、[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>

 へのアクセスには、認証情報が必要です。これらの認証情報には、アプリケーションや Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどの AWS リソースにアクセスするためのアクセス許可が必要です。次のセクションでは、[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>

認証とは、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

( AWS IAM アイデンティティセンター IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*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 のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *ルートユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### フェデレーテッドアイデンティティ
<a name="security_iam_authentication-federated"></a>

ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

*フェデレーティッド ID* は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID Directory Service ソースからの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーテッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

アクセスを一元管理する場合は、 AWS IAM アイデンティティセンターをお勧めします。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM アイデンティティセンターとは](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)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスすることを人間 AWS のユーザーに要求する](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](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)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*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>

**警告**  
新しいプロジェクトでは、Kinesis Data Analytics for SQL アプリケーションよりも新しい Managed Service for Apache Flink Studio を使用することをお勧めします。Managed Service for Apache Flink Studio は、使いやすさと高度な分析機能を兼ね備えているため、高度なストリーム処理アプリケーションを数分で構築できます。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](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 ユーザーガイド*」の「[IAM のベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

**Topics**
+ [リソースおよびオペレーション](#access-control-resources)
+ [リソース所有権について](#access-control-resource-ownership)
+ [リソースへのアクセスの管理](#manage-access-overview)
+ [ポリシー要素 (アクション、効果、プリンシパル) の指定](#specify-policy-elements)
+ [ポリシーでの条件の指定](#specifying-conditions-overview)

## リソースおよびオペレーション
<a name="access-control-resources"></a>

では、プライマリリソースはアプリケーションです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。

これらのリソースには、次の表に示すとおり、一意の Amazon リソースネーム (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 ユーザーガイド]](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) の [IAM とは] を参照してください。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 アイデンティティにアタッチできます。例えば、次のオペレーションを実行できます。
+ **アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする** – アプリケーションなどのリソースを作成するアクセス権限を付与するには、ユーザーまたはユーザーが所属するグループにアクセス許可のポリシーをアタッチできます。
+ **アクセス権限ポリシーをロールにアタッチする (クロスアカウントの許可を付与)** - ID ベースのアクセス権限ポリシーを 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 リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「[リソースおよびオペレーション](#access-control-resources)」を参照してください。
+ **アクション** – アクションキーワードを使用して、許可または拒否するリソース操作を特定します。たとえば、`create` を使用して、アプリケーションの作成をユーザーに許可することができます。
+ **効果** – ユーザーが特定のアクションをリクエストする際の効果 (許可または拒否) を指定します。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。
+ プリンシパル**** – ID ベースのポリシー (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": [
                "*"
            ]
        }
    ]
}
```

------

このポリシーには以下の 1 つのステートメントがあります。
+ 最初のステートメントでは、アプリケーションの Amazon リソースネーム (ARN) を使用して、リソースに対し 1 つのアクション (`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 ロールを指定する場合は、`iam:PassRole` アクションのアクセス権限が必要です。この Amazon 管理ポリシーは、プレフィックス `service-role/kinesis-analytics` から始まる IAM ロールについてのみ、ユーザーに `iam:PassRole` アクションのアクセス権限を付与します。

    ユーザーが、このプレフィックスがついていないロールを使用して `iam:PassRole` アプリケーションを設定する場合、その特定のロールで明示的にユーザーにアクションのアクセス権限を付与する必要があります。

独自のカスタム IAM ポリシーを作成して、 アクションとリソースのための権限を許可することもできます。こうしたカスタムポリシーは、該当するアクセス許可が必要なユーザーまたはグループにアタッチできます。

## お客様が管理するポリシーの例
<a name="access-policy-customer-managed-examples"></a>

このセクションの例では、ユーザーにアタッチできるサンプルポリシーのグループが用意されています。ポリシーの作成が初めての場合は、お客様のアカウントにユーザーを作成することをお勧めします。次に、このセクションのステップで説明している順番でポリシーをそのユーザーにアタッチします。その後、コンソールを使用して、ユーザーにポリシーをアタッチしながら各ポリシーの効果を確認できます。

最初は、ユーザーにアクセス権限が付与されていないため、コンソールを使用してできることは何もありません。ユーザーにポリシーをアタッチすることで、ユーザーがコンソールで多様なアクションを実行できることを確認できます。 

2 つのブラウザウィンドウを使用することをお勧めします。1 つのウィンドウでユーザーを作成し、アクセス権限を付与します。一方、ユーザーの認証情報 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 グループにユーザーを追加したら、作成したユーザーに管理者許可を付与する必要があります。その後、特別な 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 ロール名を入力するか、すべての IAM ロールを示すワイルドカード文字 (\$1) を指定して、ポリシーを更新する必要があります。これは安全なプラクティスではありませんが、このテスト中に作成された特定の 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 コールで、`Resource` 値として「\$1」を指定することに注意してください。
+ 任意のアプリケーションの情報を取得できる `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:AddApplicationInput` など) の前に `kinesisanalytics` プレフィックスを使用します。

スクロールバーを使用して、テーブルの残りの部分を確認します。




**API とアクションで必要なアクセス権限**  

|  API オペレーション | 必要な許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [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` と呼ばれる内部メソッドを使用して、アプリケーションデータをサンプリングするか、アプリケーションデータにアクセスします。サービスアプリケーションには、 AWS マネジメントコンソールを介してアプリケーションデータをサンプリングするか、アプリケーションデータにアクセスするために、内部 `kinesisanalytics:GetApplicationState` API に対するアクセス許可が必要です。

# Amazon Kinesis Data Analytics のモニタリング
<a name="security-monitoring"></a>

Kinesis Data Analytics は、アプリケーションのモニタリング機能を備えています。詳細については、「[for SQL Applications のモニタリング](monitoring-overview.md)」を参照してください。

# Amazon Kinesis Data Analytics for SQL Applications のコンプライアンス検証
<a name="akda-java-compliance"></a>

サードパーティーの監査者は、複数のコンプライアンスプログラムの一環として Amazon Kinesis Data Analytics のセキュリティと AWS コンプライアンスを評価します。このプログラムには、SOC、PCI、HIPAA などを含みます。

特定のコンプライアンスプログラムの対象となる AWS サービスのリストについては、[「コンプライアンスプログラムによる Amazon Services in Scope](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。
+  [「Architecting for HIPAA Security and Compliance」ホワイトペーパー ](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 Analytics はサーバーレスモードで実行され、ホストのパフォーマンス低下、アベイラビリティーゾーンの可用性、および自動移行に伴うインフラストラクチャ関連のその他の問題に対応します。この場合、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 以降をサポートする必要があります。クライアントは、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) などの Perfect Forward Secrecy (PFS) を使用する暗号スイートもサポートする必要があります。これらのモードは、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 データストリーム、Firehose 配信ストリーム、Amazon S3 バケットなど) にアクセスするには、Kinesis Data Analytics アプリケーションに有効な認証情報が必要です。 AWS 認証情報をアプリケーションや Amazon S3 バケットに直接保存しないでください。これらは自動的にローテーションされない長期的な認証情報であり、漏洩するとビジネスに大きな影響が及ぶ場合があります。

CloudWatch Logs ロググループの作成代わりに、 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、Kinesis Data Analytics のユーザー、ロール、または Amazon サービスによって実行されたアクションを記録するサービスである と統合されています。

CloudTrail によって収集された情報を使用して、Kinesis Data Analytics に対して実行されたリクエスト、リクエスト実行元の IP アドレス、リクエストの実行者、リクエストの実行時、およびその他の詳細を判断することができます。

詳細については、「[での AWS CloudTrail API コールのログ記録](logging-using-cloudtrail.md)」を参照してください。