一部のSystemLink Enterpriseサービスでは、オブジェクトストレージプロバイダが必要です。

SystemLink Enterpriseは、以下のストレージプロバイダをサポートしています。
  • Amazon S3ストレージ
  • Amazon S3互換ストレージ
  • Azure Blobストレージ
メモ Amazon S3互換オブジェクトストレージプロバイダは、Amazon S3 API一式を実装している必要があります。詳細については、「Amazon S3 API リファレンス」を参照してください。データフレームサービスは、GCS Amazon S3相互運用性XML APIをサポートしていません。

Amazon S3ストレージおよびAzure Blobストレージは、以下の表に記載されているパラメータを複数の構成で共有します。共有は、Helm値ファイルのYAMLアンカー構文を介して行われます。この構文を使用すると、複数の値ファイルのすべてで共通の構成を簡単に共有できます。記載された個々の値はカスタム値でオーバーライドできます。

Amazon S3およびAmazon S3互換ストレージプロバイダ

メモ Amazon S3ストレージ内のオブジェクトは、SSE-S3またはバケットキーを使用したSSE-KMSを用いて暗号化できます。詳細については、「暗号化によるAmazon S3データの保護」を参照してください。

aws-supplemental-values.yaml Helm構成ファイルまたはstorage-values.yaml Helm構成ファイルで、以下の構成を設定します。

シークレットリファレンスは、aws-secrets.yamlファイル、storage-secrete.yamlファイル、またはクラスタ上で直接構成できます。

表 38. 構成可能なパラメータ
2025-07リリース前のパラメータ 2025-07リリース後のパラメータ 詳細
該当なし
  • dataframeservice.storage.type
  • fileingestion.storage.type
  • feedservice.storage.type
  • nbexecservice.storage.type
この値はサービスストレージタイプを表します。値をs3に設定します。
  • dataframeservice.s3.port
  • fileingestion.s3.port
  • feedservice.s3.port
  • nbexecservice.s3.port
  • dataframeservice.storage.s3.port
  • fileingestion.storage.s3.port
  • feedservice.storage.s3.port
  • nbexecservice.storage.s3.port
この値は、ストレージプロバイダサービスのポート番号を表します。
  • dataframeservice.s3.host
  • fileingestion.s3.host
  • feedservice.s3.host
  • nbexecservice.s3.host
  • dataframeservice.storage.s3.host
  • fileingestion.storage.s3.host
  • feedservice.storage.s3.host
  • nbexecservice.storage.s3.host
この値は、ストレージプロバイダサービスのホスト名を表します。
  • dataframeservice.s3.schemeName
  • fileingestion.s3.scheme
  • feedservice.s3.scheme
  • nbexecservice.s3.scheme
  • dataframeservice.storage.s3.schemeName
  • fileingestion.storage.s3.scheme
  • feedservice.storage.s3.scheme
  • nbexecservice.storage.s3.scheme
この値は、ストレージプロバイダサービスのスキームを表します。この値は通常、httpsです。
  • dataframeservice.s3.region
  • fileingestion.s3.region
  • feedservice.s3.region
  • nbexecservice.s3.region
  • dataframeservice.storage.s3.region
  • fileingestion.storage.s3.region
  • feedservice.storage.s3.region
  • nbexecservice.storage.s3.region
この値は、S3バケットがあるAWSリージョンを表します。
  • dataframeservice.sldremio.distStorage
変更なし

<ATTENTION>フラグを解決します。

これらの設定は、データフレームサービスに必要な分散ストレージを構成します。

  • dataframeservice.storage.s3.auth.secretName
  • fileingestion.storage.s3.secretName
  • feedservice.storage.s3.secretName
  • nbexecservice.storage.s3.secretName
変更なし ストレージプロバイダサービスとの接続に使用する、資格情報のシークレット名です。

2025-11リリースから、fileingestioncdcは以下のパラメータを追加します。

表 39. 2025-11 リリースパラメータ
パラメータ 詳細
fileingestioncdc.highAvailability.storage.s3.port この値は、ストレージプロバイダサービスのポート番号を表します。
fileingestioncdc.highAvailability.storage.s3.scheme この値は、ストレージプロバイダサービスのスキームを表します。この値は通常、httpsです。

IAMを介してサービスをS3に接続する

サービスをAmazon S3に接続するIAM役割を割り当てます。Helm値ファイルでサービスアカウントとIAM役割注釈を構成します。

メモ 2026-03リリース以降、SystemLinkではAWS_WEB_IDENTITY_TOKENは廃止されました。SystemLinkは、トークンの機能をAWS_IAMのエイリアスとして保持しました。IAM役割ベース認証のS3認証タイプとしてAWS_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を使用します。
メモ 以下のサービスアカウント注釈は、IRSAを使用する場合にのみ含めてください。ポッドIDには、これらの注釈は必要ありません。
表 40. サービス構成
サービス 構成
アセットサービス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.authenticationmetadataではなく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メタデータ認証を使用してください。
メモ NIでは、データストレージと分散ストレージの両方に別々のS3バケットを使用することを推奨します。NIでは、各IAM役割に対してアクセス範囲を狭めることを推奨します。
メモ dataframeservice.sldremio.storage.s3.authTypeの値を変更する場合は、更新を適用した後にDremioをリセットする必要があります。この要件は、初回インストールには適用されません。詳細については、「Dremioをリセットする」を参照してください。

Dremio認証を構成するには、以下の手順に従ってください。

  1. 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を含むように信頼ポリシーを更新します。
  2. Dremioポッドを実行するEC2ノードグループのIAM役割に、DataFrameサービスIAMの役割を引き受ける権限を付与します。この権限を付与するには、以下のステートメントをノードグループの役割ポリシーに追加します。
    {
      "Action": [
        "sts:AssumeRole"
      ],
      "Effect": "Allow",
      "Resource": "<dataframeservice_role_ARN>"
    }
  3. dataframeservice.storage.s3.authTypeAWS_IAMに設定します。
  4. dataframeservice.sldremio.storage.s3.authTypeEC2_METADATAに設定します。
  5. dataframeservice.sldremio.storage.s3.roleArnをDataFrame Service IAM role ARNに設定します。
  6. 以下のオプションのいずれかを使用して分散ストレージ認証を構成します。
    表 41. 分散ストレージ認証を構成するためのオプション
    オプション ステップ
    EKSポッドID
    メモ NIはこのオプションを推奨
    1. Dremio分散ストレージIAMの役割を作成します。
      1. 以下のステートメントで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>/*"
          ]
        }
      2. EKSポッドIDエージェント (pods.eks.amazonaws.com) にsts:AssumeRoleおよびsts:TagSession権限を許可する信頼ポリシーでIAM役割を作成します。
      3. IAMポリシーを役割に関連付けます。
    2. Dremio分散ストレージの役割、dremio-coordinatorサービスアカウント、およびdremio-executorサービスアカウント間にEKSポッドID関連付けを作成します。
    3. dataframeservice.sldremio.distStorage.aws.authenticationpodIdentityに設定します。
    EC2メタデータ
    メモ ポッドIDが使用できない場合、このオプションを使用します。
    1. EC2ノードグループのロールポリシーにステートメントを追加して、グローバルS3バケットの検出を可能にします。
      {
        "Action": [
          "s3:GetBucketLocation",
          "s3:ListAllMyBuckets"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::*"
      }
    2. 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サービスの役割ポリシー。
      • 上記のステートメント。
    3. dataframeservice.sldremio.distStorage.aws.authenticationmetadataに設定します。
  7. S3バケットがSSE-KMS暗号化を使用する場合、以下の役割にKMSキーに対するkms:GenerateDataKeyおよびkms:Decrypt権限があることを確認してください。
    • DataFrameサービスIAMの役割
    • Dremio分散ストレージの役割
      メモ 分散ストレージ認証でEC2メタデータを使用する場合は、EC2ノードグループの役割を設定します。
  8. IAMベースの認証を使用する場合は、シークレットからDremio S3アクセスキー構成を削除します。

セキュリティ上の理由から、NIはDremioを専用のノードグループで実行することを推奨します。

メモ Dremioが他のワークロードとノードグループを共有している場合。これらのワークロードは、ノードメタデータを介して同じEC2インスタンスプロファイル資格情報にアクセスできます。専用ノードグループを使用して、Dremioワークロードへの資格情報アクセスを制限します。

ポッドからEC2メタデータ認証を使用するには、インスタンスメタデータサービス (IMDS) のホップ制限が1より大きい必要があります。ホップ制限が2以上の場合、ポッドはノードに加えて資格情報も取得できます。

メモ この設定は、デフォルトのホップ制限によりポッドがIMDS資格情報にアクセスできなくなるAL2023を使用するAmazon EKSノードに関係します。詳細については、「IMDSアクセスに関する注意事項」を参照してください。

アクセスキーを使用してサービスをS3に接続する

以下のシナリオでは、アクセスキーを使用してサービスをS3に接続します。

メモ NIでは、システムが静的資格情報を必要とする場合にのみアクセスキー認証を使用することを推奨しています。
  • S3互換ストレージプロバイダ — Amazon S3のみがIAM役割ベースの認証をサポートしています。その他のS3互換プロバイダでは、アクセスキー認証を使用します。
  • IAM役割構成なしのAWSデプロイメント — ポッドIDとIRSAが使用できない場合は、アクセスキー認証を使用できます。
表 42. アクセスキーのファイル構成
構成 説明
値ファイル

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認証が使用できない場合、同じパターンが他のサービスにも適用されます。

メモ Amazon S3でAWSにデプロイする場合、セキュリティと資格情報管理を向上させるために、サポートされている場合はIAM認証を使用することをお勧めします。

Azure Blobストレージプロバイダ

メモ DataFrameサービスのストレージアカウントでは、BLOBソフト削除階層型ネームスペースを無効にする必要があります。

azure-supplemental-values.yaml Helm構成ファイルまたはstorage-values.yaml Helm構成ファイルで、以下の構成を設定します。

シークレットリファレンスは、azure-secrets.yamlファイル、storage-secrets.yamlファイル、またはクラスタ上で直接構成できます。

表 43. 構成可能なパラメータ
2025-07リリース以降のパラメータ 詳細
  • dataframeservice.storage.type
  • fileingestion.storage.type
  • fileingestioncdc.highAvailability.storage.type
  • feedservice.storage.type
  • nbexecservice.storage.type

この値は、サービスのストレージタイプを表します。値をazureに設定します。

  • dataframeservice.storage.azure.blobApiHost
  • fileingestion.storage.azure.blobApiHost
  • fileingestioncdc.highAvailability.storage.azure.blobApiHost
  • feedservice.storage.azure.blobApiHost
  • nbexecservice.storage.azure.blobApiHost

この値は、アカウント名のない、Azure Blobストレージのホストを表します。たとえば、blob.core.windows.netまたはblob.core.usgovcloudapi.netという値を設定できます。

ストレージがデフォルトポートを使用していない場合は、ホストの末尾にポートを追加します。例: blob.core.windows.net:1234

  • dataframeservice.storage.azure.dataLakeApiHost

この値は、アカウント名のない、接続先のAzure Data Lake Storageのホストとポートを表します。たとえば、dfs.core.windows.netという値を設定できます。

ストレージがデフォルトポートを使用していない場合は、ホストの末尾にポートを追加します。例: dfs.core.windows.net:1234

  • dataframeservice.storage.azure.accountName
  • fileingestion.storage.azure.accountName
  • fileingestioncdc.highAvailability.storage.azure.accountName
  • feedservice.storage.azure.accountName
  • nbexecservice.storage.azure.accountName

この値は、サービスのストレージアカウントを表します。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>"

同じパターンが他のサービスにも適用されます。

ファイルストレージの制限とコストに関する注意事項

ファイルストレージサービスの制限とコストに関する注意事項を調整するには、以下の構成を参照してください。

表 44. ファイルストレージに関する注意事項
注意事項 構成
ストレージコストの削減
不完全なマルチパートアップロードをクリーンアップするようにサービスを構成します。Amazon S3を使用している場合は、S3バケットでAbortIncompleteMultipartUpload値を構成します。
メモ Azureストレージでは、コミットされていないブロックが7日後に自動的に削除されます。その他のS3互換プロバイダについては、プロバイダのドキュメントを参照してください。
1人のユーザが1秒にアップロードできるファイル数を調整する

fileingestion.rateLimits.upload値を構成します。

デフォルトでは、1ユーザあたり3ファイル/秒です。複数のレプリカ間で負荷を分散すると、指定されたレートよりも有効レートが高くなります。

ユーザがアップロードできる最大ファイルサイズを調整する。

fileingestion.uploadLimitGB値を構成します。

デフォルト値は2 GBです。

1つのレプリカがデータを取り込むために処理できる同時要求数を調整する。

dataframeservice.rateLimits.ingestion.requestLimit値を構成します。