認証
APIトークンを生成して、既存のS3互換SDKやXML APIで使用するためのアクセスキーとして利用できます。
APIトークンを生成する前に、R2を購入する必要があります。
APIトークンを作成するには:
- アカウントホームで、R2を選択します。
- アカウントの詳細の下で、R2 APIトークンの管理を選択します。
- APIトークンを作成 ↗を選択します。
- R2トークンのテキストを選択して、APIトークン名を編集します。
- 権限の下で、トークンの権限タイプを選択します。各オプションに関する情報は権限を参照してください。
- (オプション)オブジェクトの読み取りと書き込みまたはオブジェクトの読み取りの権限を選択した場合、トークンを一連のバケットにスコープできます。
- APIトークンを作成を選択します。
トークンが正常に作成された後、シークレットアクセスキーとアクセスキーIDの値を確認してください。これらは通常、クライアントシークレットおよびクライアントIDと呼ばれます。
また、S3クライアントのendpointをhttps://<ACCOUNT_ID>.r2.cloudflarestorage.comに設定する必要があります。
CloudflareダッシュボードでアカウントIDを見つけるを参照してください。
管轄区域で作成されたバケットには、管轄区域特有のendpointを介してアクセスする必要があります:
- 欧州連合(EU):
https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com - FedRAMP:
https://<ACCOUNT_ID>.fedramp.r2.cloudflarestorage.com
| 権限 | 説明 |
|---|---|
| 管理者の読み取りと書き込み | バケットの作成、リスト、削除、およびバケット設定の編集に加えて、オブジェクトへのリスト、書き込み、読み取りアクセスを許可します。 |
| 管理者の読み取りのみ | バケットのリストとバケット設定の表示に加えて、オブジェクトへのリストと読み取りアクセスを許可します。 |
| オブジェクトの読み取りと書き込み | 特定のバケット内のオブジェクトを読み取り、書き込み、リストする能力を許可します。 |
| オブジェクトの読み取りのみ | 特定のバケット内のオブジェクトを読み取り、リストする能力を許可します。 |
APIを介してAPIトークンを作成し、それを使用して対応するアクセスキーIDおよびシークレットアクセスキーの値を生成できます。始めるには、API経由でAPIトークンを作成を参照してください。以下はR2の詳細です。
アクセスポリシーは、トークンがアクセスできるリソースとその権限を指定します。
R2に関連するリソースタイプは2つあります:AccountとBucket。アカウントリソースタイプの詳細については、アカウントを参照してください。
R2バケットのセットまたはアカウント内のすべてのバケットを含めます。
特定のバケットは次のように表されます:
"com.cloudflare.edge.r2.bucket.<ACCOUNT_ID>_<JURISDICTION>_<BUCKET_NAME>": "*"ACCOUNT_ID: ゾーンとアカウントIDを見つけるを参照してください。JURISDICTION: R2バケットが存在する管轄区域。特定の管轄区域で作成されていないバケットの場合、この値はdefaultになります。BUCKET_NAME: アクセスポリシーが適用されるバケットの名前。
アカウント内のすべてのバケットは次のように表されます:
"com.cloudflare.api.account.<ACCOUNT_ID>": { "com.cloudflare.edge.r2.bucket.*": "*"}ACCOUNT_ID: ゾーンとアカウントIDを見つけるを参照してください。
適用すべき権限グループを決定します。R2に関連する権限グループは4つあります。
権限グループ | リソース | 権限 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Workers R2 Storage Write | アカウント | 管理者の読み取りと書き込み | ||||||||||||
Workers R2 Storage Read | アカウント | 管理者の読み取りのみ | ||||||||||||
Workers R2 Storage Bucket Item Write | バケット | オブジェクトの読み取りと書き込み | ||||||||||||
Workers R2 Storage Bucket Item Read | バケット | オブジェクトの読み取りのみ |
[ { "id": "f267e341f3dd4697bd3b9f71dd96247f", "effect": "allow", "resources": { "com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*", "com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*" }, "permission_groups": [ { "id": "6a018a9f2fc74eb6b293b0c548f38b39", "name": "Workers R2 Storage Bucket Item Read" } ] }]トークンを作成APIのレスポンスからアクセスキーIDとシークレットアクセスキーの値を取得できます:
- アクセスキーID: APIトークンの
id。 - シークレットアクセスキー: APIトークン
valueのSHA-256ハッシュ。
JavaScript、Python、Goの例を含むチュートリアルについては、R2 APIに対して認証トークンを使用して認証するを参照してください。
バケットまたはバケット内のプレフィックス/オブジェクトのために一時的な資格情報を作成する必要がある場合は、APIのtemp-access-credentialsエンドポイントを使用できます。親アクセスキーIDとして渡す既存のR2トークンが必要です。APIの結果から取得した資格情報を使用してS3互換のリクエストを行うには、次のように資格情報変数を設定します:
AWS_ACCESS_KEY_ID = <accessKeyId>AWS_SECRET_ACCESS_KEY = <secretAccessKey>AWS_SESSION_TOKEN = <sessionToken>