SimplePDFでドキュメントを独自のScalewayストレージに保存する方法

ドキュメントはSimplePDFのインフラを経由せず、SimplePDFエディターから直接ご自身のScalewayバケットへ送られます

AWS S3、Azure Blob Storage、SharePointの代替として、Scaleway Object Storageのバケットにドキュメントと提出物を保存できます。

Scalewayは、パリ、アムステルダム、ワルシャワ、ミラノにデータセンターを持つ欧州のクラウドプロバイダーです。選ばれる理由として多いのは、EUデータレジデンシー、GDPR準拠、あるいはすでにScaleway上でインフラを運用しており、ドキュメントも同じプロバイダーに置きたい、といった点です。

Scalewayバケットに保存されるもの

Scalewayを接続すると、次の2種類のファイルが自動的にバケットへ保存されます。

  • 元のドキュメント:ユーザー(またはご自身)がエディターに読み込んだPDFは、すべて直接バケットへアップロードされます。SimplePDFはコピーを保持しません。
  • 記入済みの提出物:ユーザーがドキュメントに署名、編集、または提出すると、生成されたPDFもバケットへ書き込まれます。

アップロードはクライアント側で行われます。ブラウザーが有効期限の短い署名付きURLを使ってScalewayへ直接アップロードします。SimplePDFのサーバーはそのURLをやり取りするだけなので、ドキュメントがSimplePDFのインフラを経由することは一切ありません。仕組みはAWS S3の設定と同じです。シーケンス図と全体のセキュリティモデルについては、こちらをご覧ください。

独自のScaleway Object Storageを設定する方法

独自のScaleway Object Storageバケットの設定はPROプランでご利用いただけます

Scaleway側の設定

Scaleway Object Storageにドキュメントを保存するには、バケットと、そのバケットに対する読み取り・書き込み・削除の権限を持つAPIキーが必要です。

  1. お好みのリージョン(fr-par、nl-ams、pl-waw、it-mil)でバケットを作成(または選択)します。バケットの公開設定はPrivate(デフォルト)のままにしてください。決して公開に変更しないでください。 公開状態のScalewayバケットでは、そこに保存したすべてのドキュメントと提出物が、検索エンジンのクローラーを含むインターネット上の誰からも参照できる状態になります。SimplePDFは有効期限の短い、認証済みの署名付きURLでアップロードするため、公開設定にしても機能面の利点は一切なく、情報漏えいの危険を生むだけです。

リージョン選択付きのScaleway Object Storageバケット作成フォーム

  1. Scalewayコンソール右上のユーザーメニューから、IAM & API keysを開きます。

  2. SimplePDF専用の IAMアプリケーション を作成します。ご自身のユーザーではなくアプリケーションを経由するのが安全な既定の方法です。SimplePDFに必要な権限だけを付与でき、メンバーの異動があっても影響を受けず、他の誰にも影響を与えずに失効させられます。

  • Applicationsタブを開き、+ Create applicationをクリックします。
  • 名前はsimplepdf-byos(またはご自身が識別できる任意の名前)にします。ポリシーの欄はいったん空のままにしてください(Scalewayはこの段階では任意項目としていますが、ポリシーのないアプリケーションには権限がありません。次の手順で割り当てます)。
  • Create applicationをクリックします。
  1. ポリシーを作成し、アプリケーションに限定的なObject Storage権限を付与します。
  • Policiesタブを開き、+ Create policyをクリックします。名前はsimplepdf-byos-policyとし、SimplePDF BYOSにObject Storageバケットへのアクセスを許可のような説明を追加します。

  • Principalsで、作成したばかりのsimplepdf-byosアプリケーションを選択します。

  • このポリシーには、2つのルールが必要です。1つはバケット用(プロジェクト単位)、もう1つはIAM用(組織単位)です。

    ルール1(バケットへのアクセス):

    • Scope:Access to resources → バケットが属する Project を選択します。

    • Permission sets(Storageセクション内):SimplePDFにバケットの読み取りを許可するかどうかで選択が変わります。

      • デフォルト(読み取り + 書き込み):ObjectStorageFullAccessにチェックを入れます。SimplePDFはバケット内のオブジェクトの一覧表示、読み取り、アップロード、削除と、CORSの設定ができます。
      • 書き込みのみ(SimplePDFにドキュメントを一切読み取らせたくない場合に推奨される、最も厳格な設定):ObjectStorageObjectsWrite、ObjectStorageObjectsDelete、ObjectStorageBucketsWriteにチェックを入れます。SimplePDFはアップロード、削除、CORSの設定はできますが、オブジェクトの一覧表示と読み取りはできません。Scalewayにはこの組み合わせのプリセットがないため、3つのPermission setを個別にチェックしてください。

      書き込みのみを選んだ場合は、SimplePDFが読み取り操作を試みることがないよう、後述のSimplePDFのストレージ設定フォームでも Write permissions only にチェックを入れてください。

    ルール2(IAMの読み取り):

    • + Add a ruleをクリックします。
    • Scope:Access to Organization features。
    • Permission sets(Security & Identityセクション内):IAMReadOnlyにチェックを入れます。これによりSimplePDFはAPIキーの有効期限を読み取り、失効の7日前と1日前にリマインダーメールを送信できます。
  • Create policyをクリックします。

単一のプロジェクトに対するObjectStorageFullAccessを持ち、simplepdf-byosアプリケーションに紐づいたScaleway IAMポリシー

  1. APIキーを生成します。
  • API keysタブを開き、+ Generate API keyをクリックします。
  • bearerには、作成したばかりのsimplepdf-byosアプリケーションを選択します。
  • SimplePDF BYOS APIキーのような説明を追加します。
  • 「Will this API key be used for Object Storage?」と尋ねられたら、Yesを選び、バケットが属するプロジェクトを優先プロジェクトとして選択します。
  • ご自身のセキュリティポリシーに合った有効期限を設定してください。SimplePDFはAPIキーの失効の7日前と1日前にリマインダーメールを送信するため、サービスを停止させることなくローテーションできます。
  • Access KeyとSecret Keyはすぐにコピーしてください。Secret Keyは二度と表示されません。

simplepdf-byosアプリケーションをbearerに指定し、Object Storageの優先プロジェクトを選択したScalewayのGenerate API keyフォーム

CORSの設定はSimplePDFが代わりに行います。ScalewayはコンソールでCORSを公開していませんが、SimplePDFはScalewayのエンドポイントを検出し、ストレージ設定を保存した時点で必要なCORSルールをバケットへ自動的に適用します。ルールは後述の Write permissions only の設定に追従します。SimplePDFに読み取り権限がある場合はGET、PUT、DELETEが許可され、バケットを書き込みのみに設定した場合はGETが除外されます。CLIやAWS SDKは不要です。

APIキーでCORSを設定できない場合(多くは手順4で説明したデフォルトと書き込みのみのどちらの権限にも含まれる ObjectStorageBucketsWrite がポリシーに不足しているためです)、またはバケットに到達できない場合、SimplePDFは保存を拒否してエラーを表示します。提出物がアップロードされる前に修正できます。

SimplePDF側の設定

  1. アカウントにログインします
  2. アカウント設定画面に移動します

Bring your own storageセクションが表示されたSimplePDFのアカウント設定

  1. Update configurationをクリックします

  2. ストレージタイプとして Scaleway を選択し、情報を入力します。

Region:バケットのリージョンを選択します。fr-par(パリ)、nl-ams(アムステルダム)、pl-waw(ワルシャワ)、it-mil(ミラノ)から選べます。SimplePDFはこの選択からObject StorageのエンドポイントURLを導き出すため、エンドポイントを入力する欄は別途ありません。

Bucket:Scalewayバケットの名前

Access Key:手順5で生成したAPIキーのAccess Key

Secret Key:手順5で生成したAPIキーのSecret Key

Write permissions only:SimplePDFにバケット内のドキュメントを読み取らせたくない場合は、このボックスにチェックを入れてください。チェックすると、自動適用されるCORSルールはPUTとDELETEのみを許可し(GETは含まれません)、エディターがファイルを読み取らずにアップロードと削除を行うために必要な範囲に一致します。

Scalewayを選択し、リージョンfr-par、バケットとキーを入力したSimplePDFのストレージ設定モーダル

  1. Updateをクリックします

Scalewayバケットに必要な権限

手順4で割り当てるIAMポリシーが、SimplePDFがバケットに対してできることを決定します。目的に合ったモードを選んでください。

割り当てるポリシーには、いずれも 2つのルール が必要です。

  • プロジェクト単位のルール(バケット向け):バケットが属するプロジェクトを選び、Storageセクションで以下のいずれかのPermission setの組み合わせにチェックを入れます。
  • 組織単位のルール(IAMの読み取り向け):スコープを Access to Organization features にし、Security & Identityセクションの IAMReadOnly にチェックを入れます。これはSimplePDFがAPIキーの有効期限を読み取り、失効前にリマインダーメールを送信するために必要です。

デフォルト(読み取り + 書き込み)

プロジェクト単位のルールの Storage で、ObjectStorageFullAccessにチェックを入れます。SimplePDFはバケット内のオブジェクトの一覧表示、読み取り、アップロード、削除と、CORSの設定ができます。

書き込みのみ

プロジェクト単位のルールの Storage で、ObjectStorageObjectsWrite、ObjectStorageObjectsDelete、ObjectStorageBucketsWriteにチェックを入れます。SimplePDFはオブジェクトのアップロードと削除、CORSの設定はできますが、一覧表示と読み取りはできません。Scalewayにはこの組み合わせのプリセットがないため、3つのPermission setを個別にチェックしてください。

基盤となるS3 APIのアクション

参考までに、SimplePDFがバケットに対して実行する基盤のS3アクションは次のとおりです。

  • s3:GetObject:インターフェースにドキュメントと提出物を表示する際、およびWebhookを送信する際に使用します(デフォルトモードのみ)
  • s3:PutObject:ドキュメントと提出物をアップロードする際に使用します
  • s3:DeleteObject:アップロード済みのドキュメントと提出物を削除する際に使用します
  • s3:PutBucketCORS:保存時にSimplePDFがバケットのCORSを自動設定する際、一度だけ使用します

以上です。ドキュメントと提出物が、独自のScaleway Object Storageバケットに自動的に保存されるようになりました。

ご質問がございましたら、お気軽にsupport@simplepdf.comまでご連絡ください

SimplePDFとは?

SimplePDFエディターはカスタマイズできますか?

SimplePDFはHIPAAに準拠していますか?

SimplePDFが最も役立つ業界は?

SimplePDFは自分に合っていますか?

始める準備はできましたか?

無駄なし。透かしなし(必要な場合を除く)。ただ賢く、安全で、スケーラブルなツールでPDFをプロのように扱います。

無料トライアルを始める