S3
この文書では、AWS S3にアクセスするために必要なパラメータについて説明します。これらのパラメータは以下に適用されます:
- Catalogプロパティ
- Table Valued Functionプロパティ
- Broker Loadプロパティ
- Exportプロパティ
- Outfileプロパティ
パラメータ概要
| Property Name | Legacy Name | Description | Default | Required |
|---|---|---|---|---|
| s3.endpoint | S3サービスアクセスエンドポイント(例:s3.us-east-1.amazonaws.com) | None | No | |
| s3.access_key | 認証用のAWS Access Key | None | No | |
| s3.secret_key | 認証用のAWS Secret Key | None | No | |
| s3.region | S3リージョン(例:us-east-1)。強く推奨 | None | Yes | |
| s3.use_path_style | パススタイルアクセスを使用するかどうか | FALSE | No | |
| s3.connection.maximum | 高並行性シナリオでの最大接続数 | 50 | No | |
| s3.connection.request.timeout | リクエストタイムアウト(ミリ秒)、接続取得タイムアウトを制御 | 3000 | No | |
| s3.connection.timeout | 接続確立タイムアウト(ミリ秒) | 1000 | No | |
| s3.role_arn | Assume Roleモード使用時に指定するRole ARN | None | No | |
| s3.external_id | s3.role_arnと併用するExternal ID | None | No |
認証設定
DorisはS3にアクセスするために以下の2つの方法をサポートしています:
- 直接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"
- 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 とも呼ばれます)は、より高いパフォーマンスを提供しますが、異なるエンドポイント形式を使用します。
AWS S3 Express One Zone Directory Bucket に接続するには、以下に示す追加のプロパティオプションを追加する必要があります:
"s3_validity_check" = "false"
-
"s3_validity_check" = "false" は、Directory Buckets のストレージボルト設定時によく失敗する pingS3 チェックを無効にします。
-
通常のバケット: s3.us-east-1.amazonaws.com
-
Directory Bucket: s3express-usw2-az1.us-west-2.amazonaws.com
利用可能な他のリージョンについては、以下を参照してください: AWS Official Documentation
例:
"s3.access_key"="ak",
"s3.secret_key"="sk",
"s3.endpoint"="s3express-usw2-az1.us-west-2.amazonaws.com",
"s3.region"="us-west-2"
"s3_validity_check" = "false"
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>"
}
]
}
注意事項
-
プレースホルダーの置換
<bucket>→ あなたのS3 Bucket名。<account-id>→ あなたのAWSアカウントID(12桁の数字)。
-
最小権限の原則
- クエリのみを行う場合は、書き込み権限を付与しないでください。