メインコンテンツまでスキップ
バージョン: 26.2 Preview

ストレージボリュームの AWS 認証情報サポート

StarRocks FE は AwsCloudCredential を使用して、ストレージボリュームやその他の AWS コンシューマーの AWS 認証を設定します。ストレージボリュームはさらに認証情報を StarOS にシリアライズします。FE ランタイムで サポートされる一部の組み合わせは、現在ストレージボリュームに完全には保存できません。

サポートマトリックス

認証方式必須プロパティFE ランタイムストレージボリューム説明
AWS SDK デフォルト認証情報チェーンaws.s3.use_aws_sdk_default_behavior=trueサポートサポートAWS SDK のデフォルト認証情報プロバイダーチェーンを使用します。
デフォルト認証情報チェーンの後に AssumeRoleaws.s3.use_aws_sdk_default_behavior=true
aws.s3.iam_role_arn=<arn>
任意:aws.s3.external_id
サポート非サポートストレージボリュームにはデフォルトチェーンの選択のみが保存されます。
Instance Profileaws.s3.use_instance_profile=trueサポートサポートEC2 Instance Profile 認証情報を使用します。
Instance Profile の後に AssumeRoleaws.s3.use_instance_profile=true
aws.s3.iam_role_arn=<arn>
任意:aws.s3.external_id
サポートサポートRole ARN と External ID が保存されます。
Web Identity Token ファイルaws.s3.use_web_identity_token_file=true
ワーカー環境:AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_ARN
サポートサポートToken ファイルと最初の Role は各ワーカーで解決されます。
Web Identity の後に 2 回目の AssumeRoleaws.s3.use_web_identity_token_file=true
aws.s3.iam_role_arn=<second_hop_arn>
任意:aws.s3.external_id
ワーカー環境:AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_ARN
サポートサポート設定した Role ARN は 2 回目の STS ホップを表します。
静的 Access Key と Secret Keyaws.s3.access_key=<access_key>
aws.s3.secret_key=<secret_key>
サポートサポートAccess Key と Secret Key が保存されます。
静的セッション認証情報Access Key と Secret Key のプロパティ
aws.s3.session_token=<token>
サポート非サポートSession Token はストレージボリュームに保存されません。
Access Key と Secret Key の後に AssumeRoleAccess Key と Secret Key のプロパティ
aws.s3.iam_role_arn=<arn>
任意:aws.s3.external_id
サポート非サポートAssumeRole 設定はストレージボリュームに保存されません。
カスタム STS Region または Endpoint有効なベース認証情報
aws.s3.sts.region=<region> および/または aws.s3.sts.endpoint=<endpoint>
aws.s3.iam_role_arn=<arn>
サポート非サポートカスタム STS 設定はストレージボリュームに保存されません。
ベース認証情報なしで Role ARN のみを設定aws.s3.iam_role_arn=<arn> のみ非サポート非サポートAssumeRole には有効なベース認証情報プロバイダーが必要です。

非サポートと示された組み合わせでストレージボリュームを設定しないでください。FE は対応する認証情報 プロバイダーを構築できますが、ストレージボリュームを StarOS にシリアライズすると完全な設定が保持されません。

認証情報の解決順序

複数のベース認証方式を設定した場合、FE は次の順序で最初に一致する方式を選択します。

AWS SDK デフォルト認証情報チェーン > Instance Profile > Web Identity > Access Key と Secret Key

ベース認証情報プロバイダーを選択した後、aws.s3.iam_role_arn が空でなければ、FE は STS AssumeRole 操作を実行します。

認証方式の切り替え

ALTER STORAGE VOLUME は、指定したプロパティをストレージボリュームの既存のプロパティに置き換えるのではなく マージします。上記の解決順序と組み合わさるため、新しい認証方式のプロパティのみを設定した文は成功しても、 ストレージボリュームが実際に使用する認証情報は変わらないことがあります。

ストレージボリュームの認証方式を切り替えるには、次のようにします。

  • すべての use_* プロパティを明示的に設定し、そのうち 1 つだけを true にします。
  • 新しい認証方式でも AssumeRole が必要な場合を除き、aws.s3.iam_role_arnaws.s3.external_id をクリア します。これらは use_* プロパティではないためマージ後も残り、新しい認証方式に適用されます。

認証方式が切り替わらない文

次の文はいずれも成功しますが、ストレージボリュームは以前の認証情報を保持し、指定したプロパティは保存されません。

-- ストレージボリュームは現在 Web Identity Token ファイルを使用しています。
-- 効果なし: Web Identity は Access Key と Secret Key より優先されます。
ALTER STORAGE VOLUME <storage_volume_name> SET (
"aws.s3.access_key" = "<access_key>",
"aws.s3.secret_key" = "<secret_key>"
);

-- ストレージボリュームは現在 Instance Profile を使用しています。
-- 効果なし: Instance Profile は Web Identity より優先されます。
ALTER STORAGE VOLUME <storage_volume_name> SET (
"aws.s3.use_web_identity_token_file" = "true"
);

認証方式が切り替わる文

-- Web Identity から Access Key と Secret Key へ。
ALTER STORAGE VOLUME <storage_volume_name> SET (
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "false",
"aws.s3.use_web_identity_token_file" = "false",
"aws.s3.access_key" = "<access_key>",
"aws.s3.secret_key" = "<secret_key>"
);

-- Instance Profile から Web Identity へ。以前の Role は削除します。
ALTER STORAGE VOLUME <storage_volume_name> SET (
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "false",
"aws.s3.use_web_identity_token_file" = "true",
"aws.s3.iam_role_arn" = "",
"aws.s3.external_id" = ""
);

現在の方式より優先度の高い方式へ切り替える場合は、現在の方式を無効にしなくても切り替わります。新しい方式が 先に一致するためです。たとえば、Access Key と Secret Key を使用するストレージボリュームは、 aws.s3.use_web_identity_token_filetrue に設定するだけで Web Identity に切り替わります。すべての use_* プロパティを明示的に設定する方法は双方向で有効であり、現在有効な方式を知る必要がありません。

注意

以前の認証方式から残った Role ARN は、新しい認証方式に適用されます。ストレージボリュームが Web Identity と 2 回目の AssumeRole を使用していた場合、Instance Profile に切り替えると、残った aws.s3.iam_role_arn が Instance Profile が Assume する Role になります。これを避けるには、同じ文の中で aws.s3.iam_role_arnaws.s3.external_id をクリアしてください。

ストレージボリュームの設定例については、CREATE STORAGE VOLUME を参照してください。