

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Managed Service for Apache Flink Studio ノートブック用カスタム IAM ポリシーを作成する
<a name="how-zeppelin-appendix-iam"></a>

通常、マネージド IAM ポリシーを使用して、アプリケーションが依存リソースにアクセスできるようにします。アプリケーションの権限をより細かく制御する必要がある場合は、カスタム IAM ポリシーを使用できます。このセクションには、カスタム IAM ポリシーの例が含まれています。

**注記**  
次のポリシーの例では、プレースホルダーテキストをアプリケーションの値に置き換えます。

**Topics**
+ [AWS Glue](#how-zeppelin-iam-glue)
+ [CloudWatch Logs](#how-zeppelin-iam-cw)
+ [Kinesis Streams](#how-zeppelin-iam-streams)
+ [Amazon MSK クラスター](#how-zeppelin-iam-msk)

## AWS Glue
<a name="how-zeppelin-iam-glue"></a>

次のポリシー例では、 AWS Glue データベースにアクセスするためのアクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GlueTable",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnection",
                "glue:GetTable",
                "glue:GetTables",
                "glue:GetDatabase",
                "glue:CreateTable",
                "glue:UpdateTable"
            ],
            "Resource": [
                "arn:aws:glue:{{us-east-1}}:{{123456789012}}:connection/*",
                "arn:aws:glue:{{us-east-1}}:{{123456789012}}:table/{{<database-name>}}/*",
                "arn:aws:glue:{{us-east-1}}:{{123456789012}}:database/{{<database-name>}}",
                "arn:aws:glue:{{us-east-1}}:{{123456789012}}:database/hive",
                "arn:aws:glue:{{us-east-1}}:{{123456789012}}:catalog"
            ]
        },
        {
            "Sid": "GlueDatabase",
            "Effect": "Allow",
            "Action": "glue:GetDatabases",
            "Resource": "*"
        }
    ]
}
```

------

## CloudWatch Logs
<a name="how-zeppelin-iam-cw"></a>

次のポリシーの例では、CloudWatch Logs に対するアクセス許可が付与されます。

```
{
      "Sid": "ListCloudwatchLogGroups",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:{{<region>}}:{{<accountId>}}:log-group:*"
      ]
    },
    {
      "Sid": "ListCloudwatchLogStreams",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "{{<logGroupArn>}}:log-stream:*"
      ]
    },
    {
      "Sid": "PutCloudwatchLogs",
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents"
      ],
      "Resource": [
        "{{<logStreamArn>}}"
      ]
    }
```

**注記**  
コンソールを使用してアプリケーションを作成した場合、コンソールは CloudWatch Logs にアクセスするために必要なポリシーをアプリケーションのロールに追加します。

## Kinesis Streams
<a name="how-zeppelin-iam-streams"></a>

アプリケーションは、ソースまたはデスティネーションに Kinesis Stream を使用できます。アプリケーションには、ソースストリームから読み取るための読み取り許可と、デスティネーションストリームに書き込むための書き込み許可が必要です。

以下のポリシーは、ソースとして使用される Kinesis Stream からの読み取り権限を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KinesisShardDiscovery",
            "Effect": "Allow",
            "Action": "kinesis:ListShards",
            "Resource": "*"
        },
        {
            "Sid": "KinesisShardConsumption",
            "Effect": "Allow",
            "Action": [
                "kinesis:GetShardIterator",
                "kinesis:GetRecords",
                "kinesis:DescribeStream",
                "kinesis:DescribeStreamSummary",
                "kinesis:RegisterStreamConsumer",
                "kinesis:DeregisterStreamConsumer"
            ],
            "Resource": "arn:aws:kinesis:{{us-east-1}}:{{123456789012}}:stream/{{<stream-name>}}"
        },
        {
            "Sid": "KinesisEfoConsumer",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStreamConsumer",
                "kinesis:SubscribeToShard"
            ],
            "Resource": "arn:aws:kinesis:{{us-east-1}}:{{123456789012}}:stream/{{<stream-name>}}/consumer/*"
        }
    ]
}
```

------

次のポリシーは、デスティネーションとして使用される Kinesis Stream への書き込み権限を付与します。

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

****  

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

------

アプリケーションが暗号化された Kinesis ストリームにアクセスする場合、ストリームとストリームの暗号化キーにアクセスするための追加権限を付与する必要があります。

次のポリシーは、暗号化されたソースストリームとストリームの暗号化キーへのアクセス権限を付与します。

```
{
      "Sid": "ReadEncryptedKinesisStreamSource",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
      ],
      "Resource": [
        "{{<inputStreamKeyArn>}}"
      ]
    }
    ,
```

次のポリシーは、暗号化されたデスティネーションストリームとストリームの暗号化キーへのアクセス権限を付与します。

```
{
      "Sid": "WriteEncryptedKinesisStreamSink",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "{{<outputStreamKeyArn>}}"
      ]
    }
```

## Amazon MSK クラスター
<a name="how-zeppelin-iam-msk"></a>

Amazon MSK クラスターへのアクセスを許可するには、クラスターの VPC へのアクセスを許可します。Amazon VPC にアクセスするためのポリシーの例については、「[VPC Application Permissions](https://docs.aws.amazon.com/managed-flink/latest/java/vpc-permissions.html)」を参照してください。