コンテンツにスキップ

認証

APIトークンを生成して、既存のS3互換SDKやXML APIで使用するためのアクセスキーとして利用できます。

APIトークンを生成する前に、R2を購入する必要があります。

APIトークンを作成するには:

  1. アカウントホームで、R2を選択します。
  2. アカウントの詳細の下で、R2 APIトークンの管理を選択します。
  3. APIトークンを作成を選択します。
  4. R2トークンのテキストを選択して、APIトークン名を編集します。
  5. 権限の下で、トークンの権限タイプを選択します。各オプションに関する情報は権限を参照してください。
  6. (オプション)オブジェクトの読み取りと書き込みまたはオブジェクトの読み取りの権限を選択した場合、トークンを一連のバケットにスコープできます。
  7. APIトークンを作成を選択します。

トークンが正常に作成された後、シークレットアクセスキーアクセスキーIDの値を確認してください。これらは通常、クライアントシークレットおよびクライアントIDと呼ばれます。

また、S3クライアントのendpointhttps://<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トークンを作成

APIを介してAPIトークンを作成し、それを使用して対応するアクセスキーIDおよびシークレットアクセスキーの値を生成できます。始めるには、API経由でAPIトークンを作成を参照してください。以下はR2の詳細です。

アクセスポリシー

アクセスポリシーは、トークンがアクセスできるリソースとその権限を指定します。

リソース

R2に関連するリソースタイプは2つあります:AccountBucket。アカウントリソースタイプの詳細については、アカウントを参照してください。

バケット

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.*": "*"
}

権限グループ

適用すべき権限グループを決定します。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トークンからS3 API資格情報を取得

トークンを作成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>