Amazon Athenaコネクタ > Amazon Athenaの接続 > 認証の準備
  

認証の準備

永続的なIAM資格情報とEC2インスタンスプロファイルの認証タイプを設定して、Amazon Athenaにアクセスできます。
永続的なIAM資格情報認証を使用するには、AWSコンソールでIAMユーザーを作成し、必要なポリシーをアタッチして、アクセスキーとシークレットキーを生成します。これらの詳細は、接続プロパティで使用できるように手元に用意しておいてください。
EC2インスタンスプロファイル認証を使用するには、EC2インスタンスにSecure Agentをインストールし、EC2ロールをEC2インスタンスにアタッチします。
接続プロパティを設定する前に、最小限のAmazon S3ポリシー、AWS Glueデータカタログポリシー、およびAmazon Athenaポリシーを作成します。ポリシーでIAMユーザーまたはEC2ロールに必要な権限を定義します。
設定する認証タイプに基づいて、ポリシーをIAMユーザーまたはEC2ロールにアタッチします。

Amazon S3ポリシーの作成

AWSコンソールでAmazon S3ポリシーを作成して、Amazon Athenaの結果をAmazon S3に保存するための権限を定義します。
Amazon Athenaの結果をAmazon S3に保存するには、次のような、必要な最小の権限を使用します。
次のサンプルAmazon S3ポリシーを使用できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListAllMyBuckets",
"s3:GetBucketAcl"
],
"Resource": [
"*"
]
}
]
}

AWS Glueデータカタログポリシーの作成

AWS IAMを使用して、AWS Glueが使用するリソースにアクセスするためのポリシーとロールを定義できます。
Amazon Athenaは、AWS Glue Data Catalogを使用して、AWSアカウントのAmazon S3データのテーブルメタデータを保存および取得します。
AWS Glue Data Catalogには次のサンプルポリシーを使用できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"glue:*",
],
"Resource": [
"*"
]
}
]
}

Amazon Athenaポリシーの作成

AWS Glueデータカタログのビューと外部テーブルからデータを読み取り、Amazon S3ファイルを読み取ってクエリするためにAmazon Athenaコネクタに必要な最小の権限を指定します。
次のような、必要な最小の権限を使用できます。
Amazon Athenaには次のサンプルポリシーを使用できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:GetWorkGroup",
"athena:GetTableMetadata",
"athena:StartQueryExecution",
"athena:GetQueryResultsStream",
"athena:ListDatabases",
"athena:GetQueryExecution",
"athena:GetQueryResults",
"athena:GetDatabase",
"athena:ListTableMetadata",
"athena:GetDataCatalog"
"athena:CreatePreparedStatement",
"athena:DeletePreparedStatement"
],
"Resource": [
"arn:aws:athena:*:*:workgroup/*",
"arn:aws:athena:*:*:datacatalog/*"
]
},
{
"Effect": "Allow",
"Action": [
"athena:ListDataCatalogs",
"athena:ListWorkGroups"
],
"Resource": "*"
}
]
}