25.2.2. 事前署名付き URL の使用
この設定では、List 権限を Everyone に設定し、パブリックの読み取りアクセスを許可することにより、S3 の一般に読み取り可能なバケットを作成します。クラスター内の各ノードは、
S3_PING プロトコルで要求される場合に、put および delete 操作用に事前署名付き URL を生成します。この URL は固有のファイルを参照し、バケット内のフォルダーパスを組み込むことができます。
注記
パスが長くなると、
S3_PING にエラーが発生します。たとえば、my_bucket/DemoCluster/node1 のようなパスは機能しますが、my_bucket/Demo/Cluster/node1 のようにパスが長くなると機能しません。
25.2.2.1. 事前署名付き URL の生成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JGroup の
S3_PING クラスには、事前署名付き URL を生成するためのユーティリティーメソッドが含まれます。このメソッドの最後の引数は、Unix epoch (1970 年 1 月 1 日) からの秒数で表される URL の有効期間です。
事前署名付き URL を生成する構文は次のようになります。
String Url = S3_PING.generatePreSignedUrl("{access_key}", "{secret_access_key}", "{operation}", "{bucket_name}", "{path}", {seconds});
String Url = S3_PING.generatePreSignedUrl("{access_key}", "{secret_access_key}", "{operation}", "{bucket_name}", "{path}", {seconds});
- {operation} を
PUTまたはDELETEのいずれかに置き換えます。 - {access_key} をユーザーのアクセスキーに置き換えます。
- {secret_access_key} をユーザーの秘密アクセスキーに置き換えます。
- {bucket_name} をバケットの名前に置き換えます。
- {path} をバケット内のファイルへの必要なパスに置き換えます。
- {seconds} を、Unix epoch (1970 年 1 月 1 日) からのパスの有効期間を表す秒数に置き換えます。
例25.2 事前署名付き URL の生成
String putUrl = S3_PING.generatePreSignedUrl("access_key", "secret_access_key", "put", "my_bucket", "DemoCluster/node1", 1234567890);
String putUrl = S3_PING.generatePreSignedUrl("access_key", "secret_access_key", "put", "my_bucket", "DemoCluster/node1", 1234567890);
S3_PING 設定に、S3_PING.generatePreSignedUrl() の呼び出しで生成された pre_signed_put_url および pre_signed_delete_url プロパティーが含まれていることを確認してください。この設定の場合、AWS 認証情報がクラスター内の各ノードに保存されないため、プライベート S3 バケットを使用する設定よりも安全度が高くなります。
注記
事前署名付き URL が XML ファイルに入力される場合、URL 内の
& 文字をその XML エンティティー (&) に置き換える必要があります。