メインコンテンツまでスキップ

S3

このドキュメントでは、AWS S3にアクセスするために必要なパラメータについて説明します。これらのパラメータは以下に適用されます:

  • カタログプロパティ
  • table Valued Functionプロパティ
  • Broker Loadプロパティ
  • Exportプロパティ
  • Outfileプロパティ

パラメータ概要

プロパティ名レガシー名説明デフォルト必須
s3.endpointS3サービスアクセスエンドポイント、例:s3.us-east-1.amazonaws.comNoneNo
s3.access_key認証用のAWS Access KeyNoneNo
s3.secret_key認証用のAWS Secret KeyNoneNo
s3.regionS3リージョン、例:us-east-1。強く推奨NoneYes
s3.use_path_styleパススタイルアクセスを使用するかどうかFALSENo
s3.connection.maximum高同時実行シナリオでの最大接続数50No
s3.connection.request.timeoutリクエストタイムアウト(ミリ秒)、接続取得タイムアウトを制御3000No
s3.connection.timeout接続確立タイムアウト(ミリ秒)1000No
s3.role_arnAssume Roleモード使用時に指定するRole ARNNoneNo
s3.external_ids3.role_arnと併用するExternal IDNoneNo

認証設定

DorisはS3にアクセスする以下の2つの方法をサポートしています:

  1. 直接的なAccess KeyとSecret Key
"s3.access_key"="your-access-key",
"s3.secret_key"="your-secret-key",
"s3.endpoint"="s3.us-east-1.amazonaws.com",
"s3.region"="us-east-1"
  1. Assume Role モード

クロスアカウントおよび一時的な認可アクセスに適しています。ロール認可を通じて一時的な認証情報を自動的に取得します。

"s3.role_arn"="arn:aws:iam::123456789012:role/demo-role",
"s3.external_id"="external-identifier",
"s3.endpoint"="s3.us-east-1.amazonaws.com",
"s3.region"="us-east-1"

Access KeyとRole ARNの両方が設定されている場合、Access Keyモードが優先されます。

AWS認証・認可設定の手順については、ドキュメントaws-authentication-and-authorizationを参照してください。

S3 Directory Bucketへのアクセス

この機能はバージョン3.1.0以降でサポートされています。

Amazon S3 Express One Zone(Directory Bucketとも呼ばれます)は、より高いパフォーマンスを提供しますが、異なるエンドポイント形式を持ちます。

  • 通常のbucket: s3.us-east-1.amazonaws.com
  • Directory Bucket: s3express-usw2-az1.us-west-2.amazonaws.com

利用可能なその他のリージョンについては、AWS公式ドキュメントを参照してください。

例:

"s3.access_key"="ak",
"s3.secret_key"="sk",
"s3.endpoint"="s3express-usw2-az1.us-west-2.amazonaws.com",
"s3.region"="us-west-2"

Permission Policies

使用ケースに応じて、権限は読み取り専用読み書きのポリシーに分類できます。

1. 読み取り専用権限

S3からオブジェクトの読み取りのみを許可します。LOAD、TVF、EXTERNAL CATALOGのクエリ、その他のシナリオに適しています。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
],
"Resource": "arn:aws:s3:::<your-bucket>/your-prefix/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::<your-bucket>"
}
]
}

2. 読み取り・書き込み権限

読み取り専用権限に加えて、オブジェクトの削除、作成、変更を許可します。EXPORT、OUTFILE、EXTERNAL CATALOGの書き戻しシナリオに適しています。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::<your-bucket>/<your-prefix>/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetLifecycleConfiguration"
],
"Resource": "arn:aws:s3:::<your-bucket>"
}
]
}

注意事項

  1. プレースホルダーの置換

    • <bucket> → あなたのS3 Bucket名。
    • <account-id> → あなたのAWSアカウントID(12桁の数字)。
  2. 最小権限の原則

    • クエリのみを実行する場合は、書き込み権限を付与しないでください。