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

-
Scalewayコンソール右上のユーザーメニューから、IAM & API keysを開きます。
-
SimplePDF専用の IAMアプリケーション を作成します。ご自身のユーザーではなくアプリケーションを経由するのが安全な既定の方法です。SimplePDFに必要な権限だけを付与でき、メンバーの異動があっても影響を受けず、他の誰にも影響を与えずに失効させられます。
- Applicationsタブを開き、+ Create applicationをクリックします。
- 名前は
simplepdf-byos(またはご自身が識別できる任意の名前)にします。ポリシーの欄はいったん空のままにしてください(Scalewayはこの段階では任意項目としていますが、ポリシーのないアプリケーションには権限がありません。次の手順で割り当てます)。 - Create applicationをクリックします。
- ポリシーを作成し、アプリケーションに限定的な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をクリックします。

- 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は二度と表示されません。

CORSの設定はSimplePDFが代わりに行います。ScalewayはコンソールでCORSを公開していませんが、SimplePDFはScalewayのエンドポイントを検出し、ストレージ設定を保存した時点で必要なCORSルールをバケットへ自動的に適用します。ルールは後述の Write permissions only の設定に追従します。SimplePDFに読み取り権限がある場合はGET、PUT、DELETEが許可され、バケットを書き込みのみに設定した場合はGETが除外されます。CLIやAWS SDKは不要です。
APIキーでCORSを設定できない場合(多くは手順4で説明したデフォルトと書き込みのみのどちらの権限にも含まれる ObjectStorageBucketsWrite がポリシーに不足しているためです)、またはバケットに到達できない場合、SimplePDFは保存を拒否してエラーを表示します。提出物がアップロードされる前に修正できます。
SimplePDF側の設定
- アカウントにログインします
- アカウント設定画面に移動します

-
Update configurationをクリックします -
ストレージタイプとして 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は含まれません)、エディターがファイルを読み取らずにアップロードと削除を行うために必要な範囲に一致します。

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までご連絡ください