オブジェクトストレージ
- 更新日2026-09-10
- 27分で読める
一部のSystemLink Enterpriseサービスでは、オブジェクトストレージプロバイダが必要です。
- Amazon S3ストレージ
- Amazon S3互換ストレージ
- Azure Blobストレージ
Amazon S3ストレージおよびAzure Blobストレージは、以下の表に記載されているパラメータを複数の構成で共有します。共有は、Helm値ファイルのYAMLアンカー構文を介して行われます。この構文を使用すると、複数の値ファイルのすべてで共通の構成を簡単に共有できます。記載された個々の値はカスタム値でオーバーライドできます。
Amazon S3およびAmazon S3互換ストレージプロバイダ
aws-supplemental-values.yaml Helm構成ファイルまたはstorage-values.yaml Helm構成ファイルで、以下の構成を設定します。
シークレットリファレンスは、aws-secrets.yamlファイル、storage-secrete.yamlファイル、またはクラスタ上で直接構成できます。
| 2025-07リリース前のパラメータ | 2025-07リリース後のパラメータ | 詳細 |
|---|---|---|
| 該当なし |
|
この値はサービスストレージタイプを表します。値をs3に設定します。 |
|
|
この値は、ストレージプロバイダサービスのポート番号を表します。 |
|
|
この値は、ストレージプロバイダサービスのホスト名を表します。 |
|
|
この値は、ストレージプロバイダサービスのスキームを表します。この値は通常、httpsです。 |
|
|
この値は、S3バケットがあるAWSリージョンを表します。 |
|
変更なし |
<ATTENTION>フラグを解決します。 これらの設定は、データフレームサービスに必要な分散ストレージを構成します。 |
|
変更なし | ストレージプロバイダサービスとの接続に使用する、資格情報のシークレット名です。 |
2025-11リリースから、fileingestioncdcは以下のパラメータを追加します。
| パラメータ | 詳細 |
|---|---|
| fileingestioncdc.highAvailability.storage.s3.port | この値は、ストレージプロバイダサービスのポート番号を表します。 |
| fileingestioncdc.highAvailability.storage.s3.scheme | この値は、ストレージプロバイダサービスのスキームを表します。この値は通常、httpsです。 |
IAMを介してサービスをS3に接続する
サービスをAmazon S3に接続するIAM役割を割り当てます。Helm値ファイルでサービスアカウントとIAM役割注釈を構成します。
-
Helm値でserviceAccount.create: trueを設定して、各サービス用のサービスアカウントを作成します。メモ Flinkサービスでは、この構成は必要ありません。Flink演算子はサービスアカウントを管理します。
- 以下のステートメントでIAMポリシーを作成します。
"Action": [ "s3:PutObject", "s3:ListBucket", "s3:GetObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "<s3_bucket_ARN>/*", "<s3_bucket_ARN>" ]
メモ <s3_bucket_ARN>プレースホルダは、サービスのS3バケットのAmazonリソース名を表します。 - IAMポリシーを適用するIAM役割を作成します。メモ ほとんどのIAM役割は、<release-name>-<service-name>-roleという命名規則を使用します。たとえば、systemlink-feedservice-roleなどです。FlinkサービスはFlink Operatorと同じ構成で、<release-name>-flink-roleを使用します。
| サービス | 構成 |
|---|---|
| アセットサービスCDC |
assetservicecdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
| DataFrameサービス | dataframeservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-dataframeservice-role"dataframeservice:
sldremio:
distStorage:
aws:
authentication: "metadata"メモ 2026-05リリース以降、Dremioは分散ストレージのEKSポッドIDをサポートしています。ポッドIDを使用するには、sldremio.distStorage.aws.authenticationをmetadataではなくpodIdentityに設定します。 dataframeservice:
sldremio:
storage:
s3:
authType: "EC2_METADATA"
roleArn: "arn:aws:iam::<account-id>:role/<release-name>-dataframeservice-role"Dremio IAMの追加の構成手順については、「S3用にDremio認証を構成する」を参照してください。 |
| フィードサービス |
feedservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-feedservice-role"
|
| ファイル取り込みサービス |
fileingestion:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-fileingestion-role"
|
| ファイル取り込みCDC |
fileingestioncdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
| Notebook実行サービス |
nbexecservice:
storage:
s3:
authType: "AWS_IAM"
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-executions-role"
|
| システムサービスCDC |
systemscdc:
highAvailability:
storage:
s3:
authType: "AWS_IAM"
flinkoperator:
flink-kubernetes-operator:
jobServiceAccount:
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<account-id>:role/<release-name>-flink-role"
|
Dremio認証をS3用に構成する
Dremioでは、2つのS3ストレージパスの認証が必要です。
- データストレージ―テーブルデータを格納するDataFrameサービスS3バケット。Dremioは、DataFrameサービスIAMの役割を引き受けて、EC2インスタンスメタデータを介してこのバケットにアクセスします。
- 分散ストレージ―クエリの調整とキャッシュのためにDremioが使用する個別のS3バケット。NIでは、2026-05リリース以降、EKSポッドIDを使用して分散ストレージを認証することを推奨しています。以前のリリース、またはポッドIDが使用できない場合は、EC2メタデータ認証を使用してください。
Dremio認証を構成するには、以下の手順に従ってください。
- DataFrame Service IAM役割の信頼ポリシーで、以下のプリンシパルの両方が許可されていることを確認します。
- EKSポッドIDエージェント(pods.eks.amazonaws.com)には、sts:AssumeRole権限とsts:TagSession権限が必要です。
- Dremioポッドを実行するEC2ノードグループの役割には、sts:AssumeRole権限が必要です。
メモ DataFrameサービスの役割には、信頼できるプリンシパルとしてのEC2ノードグループの役割が必要です。Dremioは、EC2メタデータ認証を介してこの役割を引き受けることで、DataFrame Service S3バケットにアクセスします。「IAMを介してサービスをS3に接続する」に続いてDataFrameサービスの役割を作成した場合は、EC2ノードグループの役割ARNを含むように信頼ポリシーを更新します。 - Dremioポッドを実行するEC2ノードグループのIAM役割に、DataFrameサービスIAMの役割を引き受ける権限を付与します。この権限を付与するには、以下のステートメントをノードグループの役割ポリシーに追加します。
{ "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Resource": "<dataframeservice_role_ARN>" } - dataframeservice.storage.s3.authTypeをAWS_IAMに設定します。
- dataframeservice.sldremio.storage.s3.authTypeをEC2_METADATAに設定します。
- dataframeservice.sldremio.storage.s3.roleArnをDataFrame Service IAM role ARNに設定します。
- 以下のオプションのいずれかを使用して分散ストレージ認証を構成します。
表 41. 分散ストレージ認証を構成するためのオプション オプション ステップ EKSポッドID メモ NIはこのオプションを推奨- Dremio分散ストレージIAMの役割を作成します。
- 以下のステートメントでIAMポリシーを作成します。
ステートメントを追加して、グローバルS3バケット検出を許可します。
{ "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "arn:aws:s3:::*" }分散ストレージバケットへのアクセスを許可するステートメントを追加します。
{ "Action": [ "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "<distributed_storage_bucket_ARN>", "<distributed_storage_bucket_ARN>/*" ] } - EKSポッドIDエージェント (pods.eks.amazonaws.com) にsts:AssumeRoleおよびsts:TagSession権限を許可する信頼ポリシーでIAM役割を作成します。
- IAMポリシーを役割に関連付けます。
- 以下のステートメントでIAMポリシーを作成します。
- Dremio分散ストレージの役割、dremio-coordinatorサービスアカウント、およびdremio-executorサービスアカウント間にEKSポッドID関連付けを作成します。
- dataframeservice.sldremio.distStorage.aws.authenticationをpodIdentityに設定します。
EC2メタデータ メモ ポッドIDが使用できない場合、このオプションを使用します。- EC2ノードグループのロールポリシーにステートメントを追加して、グローバルS3バケットの検出を可能にします。
{ "Action": [ "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "arn:aws:s3:::*" } EC2ノードグループ役割ポリシーにステートメントを追加して、分散ストレージバケットへのアクセスを許可します。
{ "Action": [ "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "<distributed_storage_bucket_ARN>", "<distributed_storage_bucket_ARN>/*" ] }メモ DataFrame Service S3バケットとDremio分散ストレージバケットが同じ場合、以下の領域で同じバケットARNを使用します。- DataFrameサービスの役割ポリシー。
- 上記のステートメント。
- dataframeservice.sldremio.distStorage.aws.authenticationをmetadataに設定します。
- Dremio分散ストレージIAMの役割を作成します。
- S3バケットがSSE-KMS暗号化を使用する場合、以下の役割にKMSキーに対するkms:GenerateDataKeyおよびkms:Decrypt権限があることを確認してください。
- DataFrameサービスIAMの役割
- Dremio分散ストレージの役割メモ 分散ストレージ認証でEC2メタデータを使用する場合は、EC2ノードグループの役割を設定します。
- IAMベースの認証を使用する場合は、シークレットからDremio S3アクセスキー構成を削除します。
セキュリティ上の理由から、NIはDremioを専用のノードグループで実行することを推奨します。
ポッドからEC2メタデータ認証を使用するには、インスタンスメタデータサービス (IMDS) のホップ制限が1より大きい必要があります。ホップ制限が2以上の場合、ポッドはノードに加えて資格情報も取得できます。
アクセスキーを使用してサービスをS3に接続する
以下のシナリオでは、アクセスキーを使用してサービスをS3に接続します。
- S3互換ストレージプロバイダ — Amazon S3のみがIAM役割ベースの認証をサポートしています。その他のS3互換プロバイダでは、アクセスキー認証を使用します。
- IAM役割構成なしのAWSデプロイメント — ポッドIDとIRSAが使用できない場合は、アクセスキー認証を使用できます。
| 構成 | 説明 |
|---|---|
| 値ファイル |
systemlink-values.yamlまたはaws-supplemental-values.yamlファイルで、S3 接続パラメータとシークレットリファレンスを指定します。 feedservice:
storage:
s3:
secretName: "feeds-s3-credentials"
accessKeyIdName: "aws-access-key-id"
accessKeyName: "aws-secret-access-key"
authType: "ACCESS_KEY"
bucket: "systemlink-feeds"
scheme: "https://"
host: "s3.amazonaws.com"
port: 443
region: "us-east-1"
|
| シークレットファイル |
systemlink-secrets.yamlまたはaws-secrets.yamlファイルにアクセス資格情報を指定します。 feedservice:
secrets:
s3:
accessKeyId: "<your-access-key-id>"
accessKey: "<your-secret-access-key>"
|
IAM認証が使用できない場合、同じパターンが他のサービスにも適用されます。
Azure Blobストレージプロバイダ
azure-supplemental-values.yaml Helm構成ファイルまたはstorage-values.yaml Helm構成ファイルで、以下の構成を設定します。
シークレットリファレンスは、azure-secrets.yamlファイル、storage-secrets.yamlファイル、またはクラスタ上で直接構成できます。
| 2025-07リリース以降のパラメータ | 詳細 |
|---|---|
|
この値は、サービスのストレージタイプを表します。値をazureに設定します。 |
|
この値は、アカウント名のない、Azure Blobストレージのホストを表します。たとえば、blob.core.windows.netまたはblob.core.usgovcloudapi.netという値を設定できます。 ストレージがデフォルトポートを使用していない場合は、ホストの末尾にポートを追加します。例: blob.core.windows.net:1234 |
|
この値は、アカウント名のない、接続先のAzure Data Lake Storageのホストとポートを表します。たとえば、dfs.core.windows.netという値を設定できます。 ストレージがデフォルトポートを使用していない場合は、ホストの末尾にポートを追加します。例: dfs.core.windows.net:1234 |
|
この値は、サービスのストレージアカウントを表します。NIでは、サービスごとに異なるストレージアカウントを使用することを推奨します。 |
サービスをAzure Blobストレージに接続する
Azure Blobストレージ認証を構成するには、値ファイルとシークレットファイルの両方を構成する必要があります。
値ファイルとシークレットファイルを使用してAzure Blobストレージ認証を構成します。
azure-supplemental-values.yamlまたはstorage-values.yamlファイルで、Azureストレージパラメータを指定します。
feedservice:
storage:
type: "azure"
azure:
accountName: "<your-azure-storage-account-name>"
blobApiHost: "blob.core.windows.net"azure-secrets.yamlファイルで、アクセス資格情報を指定します。
feedservice:
secrets:
azure:
accessKey: "<your-azure-storage-access-key>"同じパターンが他のサービスにも適用されます。
ファイルストレージの制限とコストに関する注意事項
ファイルストレージサービスの制限とコストに関する注意事項を調整するには、以下の構成を参照してください。
| 注意事項 | 構成 |
|---|---|
| ストレージコストの削減 |
不完全なマルチパートアップロードをクリーンアップするようにサービスを構成します。Amazon S3を使用している場合は、S3バケットでAbortIncompleteMultipartUpload値を構成します。
メモ Azureストレージでは、コミットされていないブロックが7日後に自動的に削除されます。その他のS3互換プロバイダについては、プロバイダのドキュメントを参照してください。 |
| 1人のユーザが1秒にアップロードできるファイル数を調整する |
fileingestion.rateLimits.upload値を構成します。 デフォルトでは、1ユーザあたり3ファイル/秒です。複数のレプリカ間で負荷を分散すると、指定されたレートよりも有効レートが高くなります。 |
| ユーザがアップロードできる最大ファイルサイズを調整する。 |
fileingestion.uploadLimitGB値を構成します。 デフォルト値は2 GBです。 |
| 1つのレプリカがデータを取り込むために処理できる同時要求数を調整する。 |
dataframeservice.rateLimits.ingestion.requestLimit値を構成します。 |
関連コンテンツ
- AWS EKSにおけるSystemLink Enterprise
Amazon Elastic Kubernetes Service (EKS) は、独自のKubernetesコントロールプレーンをインストールして操作することなく、AWSでKubernetesを簡単に実行できるようにするマネージドKubernetesサービスです。
- Azure AKSにおけるSystemLink Enterprise
Azure Kubernetes Service (AKS) は、独自のKubernetesコントロールプレーンをインストールして操作することなく、Azure上でKubernetesを簡単に実行できるようにするマネージドKubernetesサービスです。
- systemlink-values.yaml
- azure-supplemental-values.yaml
- aws-supplemental-values.yaml
- systemlink-secrets.yaml
- azure-secrets.yaml
- aws-secrets.yaml
- Amazon S3 APIリファレンス
- Amazon S3データを暗号化して保護する
- 不完全なマルチパートアップロードを削除するようにバケットのライフサイクル構成を構成する
- ブロブのソフト削除
- Azure Data Lake Storageの階層型ネームスペース
- IMDSアクセスに関する注意事項
- Dremio構成
SystemLink DataFrameサービスは、Dremioを使用して表形式データを保存およびインデックス化します。
- シークレットのローテーションを実行する
SystemLink Enterpriseのシークレットは、環境、組織のセキュリティポリシー、その他の運用要件の変更に基づいて変更またはローテーションする必要がある場合があります。変更後に正しく動作させるためには、異なるシークレットで異なる手順が必要です。