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

認証の準備

永続的なIAM資格情報、EC2インスタンスプロファイル、ロールを引き受けるためのEC2ロール、およびAWS資格情報ファイル認証タイプを設定して、Amazon Athenaにアクセスすることができます。
接続プロパティを設定する前に、最小限の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": "*"
}
]
}

ロールを引き受けるためのEC2ロールの設定

EC2ロールを設定してIAMロールを引き受け、一時的なセキュリティ資格情報を生成して、同じAWSアカウントまたは異なるAWSアカウントのAmazon Athenaに接続することができます。
EC2ロールにより、永続的なアクセスキーとシークレットキーを必要とせずに、同じAWSアカウントまたは異なるAWSアカウントから別のIAMロールを引き受けることができます。
ロールを引き受けるようにEC2ロールを設定する場合は、一時的なセキュリティ資格情報を使用するためのsts:AssumeRole権限が割り当てられており、AWSアカウント内で信頼関係が確立されていることを確認してください。信頼関係は、ロールを作成するときに、IAMロールの信頼ポリシーで定義されます。IAMロールにより、EC2ロールを信頼されたエンティティとして追加し、EC2ロールに一時的なセキュリティ資格情報の使用とAWSアカウントへのアクセスを許可します。
信頼されたEC2ロールが一時的なセキュリティ資格情報を要求すると、AWS Security Token Service(AWS STS)によって、指定した期間有効な一時的なセキュリティ資格情報が動的に生成され、信頼されたEC2ロールにその資格情報が提供されます。
ロールを引き受けるためのEC2ロール認証を使用する前に、次の前提条件を考慮してください。
注:
Amazon Athena接続を設定するときは、EC2ロールが引き受けるIAMロールのARNを指定する必要があります。必要に応じて、Amazon Athenaへのより安全なアクセスのために外部IDを指定できます。

AWS資格情報ファイル認証

Amazon Athenaへのアクセスを認証するには、アクセスキーやシークレットキーなどのAWS資格情報を格納する認証情報ファイルを使用できます。
AWS資格情報ファイルについては、次のルールを考慮してください。