データ統合ファイルシステムおよび Blob storesAmazon S3

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Amazon S3

Foundry を AWS S3 に接続して、S3 と Foundry 間でデータの読み取りと同期を行います。

対応機能

機能ステータス
バルクインポート🟢 一般利用可能
Data Connection エクスポート🟢 一般利用可能
探索🟢 一般利用可能
インクリメンタル🟢 対応ファイル形式については一般利用可能
バーチャルテーブル🟢 一般利用可能
メディアセット🟢 一般利用可能

設定方法

  1. Data Connection アプリケーションを開き、画面右上の + New Source を選択します。
  2. 利用可能なコネクタタイプから S3 を選択します。
  3. インターネットを介した 直接接続 を使用するか、あるいは 中間エージェントを介した接続 を選択します。
  4. 下記のセクションにある情報を使用して、コネクタの設定を続行するための追加設定プロンプトに従います。

Foundry での コネクタ設定 についての詳細を学びます。

接続詳細

オプション必須?説明
URLはいS3 バケットの URL。Data connection は s3a プロトコルをサポートしています。トレイリングスラッシュを含む必要があります。詳細については AWS の 公式ドキュメンテーション (外部) を参照してください。
例: s3://bucket-name/
エンドポイントはいS3 へのアクセスに使用するエンドポイント。
例: s3.amazonaws.com または s3.us-east-1.amazonaws.com
リージョンいいえAWS サービスの設定時に使用する AWS リージョン。これは STS ロールを使用する場合に必要です。警告: リージョンとリージョンを含む S3 エンドポイントを一緒に提供すると、失敗する可能性があります。
例: us-east-1 または eu-central-1
ネットワーク接続性はい - 直接接続のみステップ1: Foundry からの出力ポリシー
Foundry が S3 に出力できるように、バケットに Foundry の 出力ポリシー をアタッチします。Data Connection アプリケーションは、提供された接続詳細に基づいて適切な出力ポリシーを提案します。
例: bucket-name.s3.us-east-1.amazonaws.com (ポート 443)

ステップ 2: AWS バケットポリシー
さらに、関連する Foundry IP および/またはバケット詳細を S3 からのアクセスで許可リストに追加する必要があります。Foundry の IP 詳細は、コントロールパネルアプリケーションNetwork Egress で見つけることができます。S3 でのバケットポリシーの設定方法については、公式 AWS ドキュメンテーション (外部) を参照してください。

注: Foundry エンロールメントと同じリージョンにホストされている S3 バケットへのアクセスを設定するには、追加の設定が必要です。network egress documentation でこれらの要件について詳しく読んでください。
クライアント証明書 & 秘密鍵いいえ接続のセキュリティを確保するためにソースによってはクライアント証明書と秘密鍵が必要な場合もあります。
サーバー証明書いいえ接続のセキュリティを確保するためにソースによってはサーバー証明書が必要な場合もあります。
資格情報はいS3 への接続に使用する Access Key ID と Secret を提供します。

資格情報は、AWS アカウント内で新たに IAM ユーザーを作成し、その IAM ユーザーに S3 バケットへのアクセスを許可することで生成できます。

AWS IAM ユーザーの作成については、公式の AWS ドキュメンテーション (外部) を参照してください。Foundry がユーザーに期待する AWS 権限の詳細については、S3 に必要な権限 を参照してください。
STS ロールいいえS3 コネクタは、S3 への接続時にオプションで Security Token Service (STS) ロール (外部) を引き受けることができます。詳細については STS ロール設定 を参照してください。
接続タイムアウトいいえ接続を初めて確立する際に、諦めてタイムアウトするまで待つ時間(ミリ秒)。
デフォルト: 50000
ソケットタイムアウトいいえ接続が確立して開かれた状態で、データが転送されるまでの待ち時間(ミリ秒)。その後、接続はタイムアウトし、閉じられます。
デフォルト: 50000
最大接続数いいえ許可される開かれた HTTP 接続の最大数。
デフォルト: 50
最大エラーリトライ数いいえ失敗したリトライ可能なリクエスト(例: サービスからの 5xx エラーレスポンス)の最大リトライ試行回数。
デフォルト: 3
クライアント KMS キーいいえAWS SDK でクライアント側のデータ暗号化を実行するために使用される KMS キーの名前またはエイリアス。PCloud のエージェントでこのオプションを使用するには、プロキシの変更が必要です。
サブフォルダーを正確にマッチさせるいいえS3 の正確なサブフォルダとして、サブフォルダの下に指定されたパスとマッチさせることができます。これを false に設定すると、s3://bucket-name/foo/bar/s3://bucket-name/foo/bar_baz/ の両方が foo/bar/ のサブフォルダ設定とマッチします。
プロキシ設定はい - エージェントベースの接続のみS3 のプロキシ設定を行います。
注: (a) Foundry エンロールメントが AWS にホストされていて、(b) Foundry エンロールメントと異なる AWS リージョンにホストされている S3 バケットに接続し、(c) データ接続エージェント経由で接続する場合、これは必須です。詳細については、S3 プロキシ設定 をご覧ください。
パススタイルアクセスを有効にするいいえバーチャルホストスタイルアクセス URL (例: https://bucket-name.s3.region-code.amazonaws.com/key-name) の代わりにパススタイルアクセス URL (例: https://s3.region-code.amazonaws.com/bucket-name/key-name) を使用します。

S3 に必要な読み取りと同期の権限

次の AWS 権限は、S3 バケットのインタラクティブな探索に必要です:

Copied!
1 2 3 4 5 { "Action": ["s3:ListBucket"], // "Action"は許可する操作を指定します。ここでは"s3:ListBucket"が指定されています。これはS3バケットのリストを表示する操作を許可することを意味します。 "Resource": ["arn:aws:s3:::path/to/bucket"], // "Resource"はこのポリシーが適用されるリソースを指定します。ここでは特定のS3バケットが指定されています。 "Effect": "Allow", // "Effect"はこのポリシーが許可するか("Allow")、それとも拒否するか("Deny")を指定します。ここでは"Allow"が指定されているため、上記の操作は許可されます。 }

次の AWS 権限は、S3 からのバッチ同期、仮想テーブル、およびメディア同期に必要です:

Copied!
1 2 3 4 5 6 7 8 { // "Action"は許可する操作を指定します。この例では"s3:GetObject"が指定されており、S3オブジェクトの取得を許可しています。 "Action": ["s3:GetObject"], // "Resource"は操作の対象となるリソースを指定します。この例ではS3バケット内のすべてのオブジェクトが対象となります。 "Resource": ["arn:aws:s3:::path/to/bucket/*"], // "Effect"はポリシーの影響を指定します。"Allow"は許可、"Deny"は拒否を意味します。この例では操作を許可しています。 "Effect": "Allow", }

Amazon S3 のポリシーと権限に関する公式 AWS ドキュメント(外部)を参照して、S3 のバケットポリシーをどのように設定するか詳しく説明しています。

S3 プロキシ設定(エージェントベースの接続)

データ接続エージェントを使用して S3 に接続する場合、プロキシ設定を以下の 2 つの方法で定義できます。

  • ソース設定:以下の表に示すように、ソース設定で各プロキシ設定を直接定義します。
  • エージェントのシステムプロパティ: 代替手段として、エージェントのシステムプロパティでプロキシ設定を設定できます。これを実現するには、エージェントの詳細設定で適切な JVM 引数を含めます(例:-Dhttps.proxyHost=example.proxy.com)。
パラメーター必須?デフォルト説明
hostYHTTP プロキシホスト(スキームなし)。
portYHTTP プロキシのポート。
protocolNHTTPS使用するプロトコル。HTTPS または HTTP
nonProxyHostsNプロキシを使用しないホスト名(またはワイルドカード付きドメイン名)のリスト。例:`*.s3-external-1.amazonaws.com
credentialsNプロキシが基本的な HTTP 認証を必要とする場合(HTTP 407 応答(外部)でプロンプトされる)は、このブロックを含めます。
credentials.usernameNHTTP プロキシのプレーンテキストユーザー名。
credentials.passwordNHTTP プロキシの暗号化されたパスワード。

STS ロール設定

STS ロール設定を使用すると、S3 から読み取る際に AWS セキュリティトークンサービス(外部)を利用してロールを引き受けることができます。

パラメーター必須?デフォルト説明
roleArnYSTS ロール ARN 名。
roleSessionNameYこのロールを引き受ける際に使用するセッション名。
roleSessionDurationN3600 秒セッションの期間。
externalIdNロールを引き受ける際に使用する外部 ID。

クラウドアイデンティティ設定

クラウドアイデンティティ認証を使用すると、Foundry が AWS インスタンス内のリソースにアクセスできるようになります。クラウドアイデンティティは、コントロールパネルのエンロールメントレベルで設定および管理されます。クラウドアイデンティティの設定方法を学ぶ。

S3 ソースとクラウドアイデンティティ

クラウドアイデンティティ認証を使用する場合、資格情報セクションにロール ARN が表示されます。Cloud identity 資格情報オプションを選択した後、以下も設定する必要があります。

  1. ターゲットの Amazon AWS アカウントで Identity and Access Management(IAM)ロールを設定します。
  2. IAM ロールに、接続したい S3 バケットへのアクセス許可を与えます。通常、これはバケットポリシー(外部)で行うことができます。
  3. S3 ソース設定の詳細に、セキュリティトークンサービス(STS)ロール(外部)設定の下に IAM ロールを追加します。Foundry のクラウドアイデンティティ IAM ロールは、S3 にアクセスする際に AWS アカウント IAM ロール(外部)を引き受けようとします。
  4. クラウドアイデンティティ IAM ロールがターゲット AWS アカウント IAM ロールを引き受けることを許可する対応する信頼ポリシーを設定します(外部)。

仮想テーブル

このセクションでは、S3 ソースからの仮想テーブルの使用に関する追加情報を提供します。このセクションは、Foundry データセットに同期する場合には適用されません。

仮想テーブルの機能ステータス
ソース形式🟢 一般的に利用可能:デルタテーブル、パーケイテーブル
手動登録🟢 一般的に利用可能
自動登録🔴 利用不可
プッシュダウン計算🔴 利用不可
インクリメンタルパイプラインサポート🟢 デルタテーブルについては一般的に利用可能:APPEND のみ
🔴 パーケイテーブルについては利用不可

仮想テーブルを登録する際に、以下のソース設定要件を覚えておいてください。

  • ソースを直接接続として設定する必要があります。仮想テーブルは、中間エージェントの使用をサポートしていません。
  • 「接続の詳細」のネットワーク接続性セクションに記載されている通り、双方向の接続と許可リストの作成を確立してください。

詳細については、上記の接続の詳細セクションを参照してください。

さらに、仮想テーブルによってバックアップされたパイプラインのインクリメンタルサポートを有効にするには、ソースデルタテーブルで Change Data Feed(外部)が有効になっていることを確認してください。

例の設定

Copied!
1 2 3 4 5 6 7 8 myS3DirectSource: type: s3-direct # データソースのタイプを指定します。ここではS3直接接続を指定しています url: s3://my-bucket/ # データソースのURLを指定します。ここではS3バケットのURLを指定しています accessId: data-reader # データソースへのアクセスIDを指定します accessSecret: ExamplePassword! # データソースへのアクセスシークレットを指定します clientConfiguration: # クライアント設定を指定します connectionTimeout: 600000 # 接続タイムアウトをミリ秒単位で指定します maxErrorRetry: 10 # エラーが発生した場合の最大リトライ回数を指定します

PCloudで clientKmsKey を有効にするには、以下の設定が必要です。これにより、KMSエンドポイントへのトラフィックはPCloudのエグレスプロキシを使用し、S3エンドポイントへのトラフィックはPCloudのエグレスプロキシを使用しないようになります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 accessId: <id> # アクセスID accessSecret: <secret> # アクセスシークレット clientConfiguration: # クライアント設定 proxyConfiguration: # プロキシ設定 host: <color>-ovb-gw-1 # ホスト名 port: 8888 # ポート番号 nonProxyHosts: '*.s3-external-1.amazonaws.com' # プロキシを経由しないホスト credentials: # 資格情報 username: proxyUser # ユーザー名 password: proxyPassword # パスワード clientKmsKey: alias/<kms-name> # クライアントのKMSキー stsRoleConfiguration: # STSロール設定 roleArn: arn:aws:iam::123456789012:role/role-name # ロールのARN roleSessionName: magritte # ロールセッション名 roleSessionDuration: PT3600S # ロールセッションの持続時間 externalId: someexternalid # 外部ID matchSubfolderExactly: true # サブフォルダと完全に一致するかどうか s3Endpoint: s3-external-1.amazonaws.com # S3エンドポイント type: s3-direct # タイプ url: 's3://<shared-bucket-name>/' # URL

S3 へのデータエクスポート

S3 へエクスポートするには、まず S3 コネクターの エクスポートを有効にする ことが必要です。次に、新しいエクスポートを作成する してください。

S3 へのエクスポートに必要な権限

S3 へのデータエクスポートには、以下の AWS 権限が必要です:

Copied!
1 2 3 4 5 6 7 8 { // "Action": このポリシーによって許可されるアクションを指定します。ここでは、S3バケットにオブジェクトを追加(PutObject)するアクションが許可されています。 "Action": ["s3:PutObject"], // "Resource": このポリシーが適用されるリソースを指定します。ここでは、特定のS3バケットのパスが指定されています。 "Resource": ["arn:aws:s3:::path/to/bucket/*"], // "Effect": このポリシーが許可(Allow)するか、拒否(Deny)するかを指定します。ここでは、許可(Allow)が選択されています。 "Effect": "Allow", }

Amazon S3 のポリシーと権限に関する公式 AWS ドキュメンテーション (外部) を参照して、S3 でバケットポリシーを設定する方法の詳細をご覧ください。

エクスポート設定オプション

オプション必須?デフォルト説明
Path PrefixいいえN/Aエクスポートされたファイルに使用するべきパスプレフィックス。エクスポートされたファイルの完全なパスは s3://<bucket-name>/<path-in-source-config>/<path-prefix>/<exported-file> として計算されます
Canned ACLいいえN/Aアップロードされたファイルに添付された AWS のアクセス制御リスト (ACL) を設定します。canned ACL のいずれかを使用します。各 ACL の説明については、AWS ドキュメンテーション (外部) を参照してください。