> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Blob S3 認証情報

> GET /v1/s3/credentials で API キーの S3 アクセスキーのペアを取得し、aws-cli、boto3、rclone、AWS SDK を Blob Storage で使用します。

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  アカウントの API キーです。これは[アカウント設定](https://squarecloud.app/ja/account/security)で確認できます。
</ParamField>

S3 認証情報は、S3 ツールが [S3 ゲートウェイ](/ja/blob-reference/s3-compatibility)へのリクエストに署名するために使用するアクセスキーのペアを返します。このペアは、このルートを呼び出す **API キーから導出されます**: 再度呼び出しても同じペアが返され、キーを取り消したり、再生成したり、キーの有効期限が切れたりすると、ペアにも同じことが起こります。他にローテーションや取り消しが必要なものはありません。

`blob:read` または `blob:write` を持つ API キーで呼び出してください。`access` フィールドが示すとおり、ペアは `blob:read` があれば読み取り、`blob:write` があれば書き込みが可能です。

<Warning>`secret_access_key` は API キーと同じアクセス権を与えます。キーそのものと同様に保管してください。</Warning>

<Tip>API キーが変わらない限り、ペアも変わりません。一度取得して、シークレットマネージャーまたは環境変数に保管してください: アプリケーションの起動のたびにこのルートを呼び出さないでください。</Tip>

### レート制限

<Note>アカウントあたり 1 時間に 10 リクエスト (`RATE_LIMITED`、429)。</Note>

### レスポンス

<ResponseField name="status" type="string">
  成功した場合は "success"、失敗した場合は "error" です。
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="オブジェクトを切り替え">
    <ResponseField name="access_key_id" type="string">
      アクセスキー id (`SQ2_...`)。
    </ResponseField>

    <ResponseField name="secret_access_key" type="string">
      シークレットアクセスキー。
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      `https://s3-blob.squarecloud.app`
    </ResponseField>

    <ResponseField name="region" type="string">
      `auto`
    </ResponseField>

    <ResponseField name="buckets" type="string[]">
      アカウントのバケット: `public`、`private`、`legacy`。
    </ResponseField>

    <ResponseField name="access" type="object">
      `read` と `write`。キーのスコープに応じて、それぞれ `true` または `false` です。
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      API キー、つまりペアの有効期限。有効期限がない場合は `null`。
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://blob.squarecloud.app/v1/s3/credentials' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "access_key_id": "SQ2_3155597145698959364_k7Hq2mX9",
      "secret_access_key": "vR8nLq2Wz5Tc1Yb7Hs0Kd4Jf6Gm3Pa9Xe",
      "endpoint": "https://s3-blob.squarecloud.app",
      "region": "auto",
      "buckets": ["public", "private", "legacy"],
      "access": { "read": true, "write": true },
      "expires_at": null
    }
  }
  ```
</ResponseExample>

### エラー

| コード                  | HTTP | 発生する状況                                      |
| -------------------- | ---- | ------------------------------------------- |
| `API_KEY_REQUIRED`   | 400  | ダッシュボードのセッションで呼び出された。API キーを使用してください。       |
| `LEGACY_API_KEY`     | 400  | キーが S3 リクエストに署名できない旧形式。新しい API キーを作成してください。 |
| `INVALID_CREDENTIAL` | 401  | API キーを検証できなかった。                            |
| `MISSING_SCOPE`      | 403  | キーが `blob:read` も `blob:write` も持っていない。     |
| `RATE_LIMITED`       | 429  | 1 時間に 10 リクエストを超えた。                         |
