認証

Nami Cloud Storageは、リクエスト認証にAWS Signature Version 4を使用しており、標準のS3クライアントおよびSDKと互換性があります。

資格情報

リクエストを認証するには、2つの資格情報が必要です:
  • アクセスキーID
  • シークレットアクセスキー
これらの資格情報は、Nami Cloud Dashboardから取得できます。

認証ヘッダー

各リクエストには、以下の形式のAuthorizationヘッダーを含める必要があります:
Authorization: AWS4-HMAC-SHA256 
    Credential=${AccessKeyID}/${date}/${region}/s3/aws4_request,
    SignedHeaders=${headers},
    Signature=${signature}

Authorization: AWS4-HMAC-SHA256 
    Credential=AKIAIOSFODNN7EXAMPLE/20231028/us-east-1/s3/aws4_request,
    SignedHeaders=host;x-amz-content-sha256;x-amz-date,
    Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

SDKとの使用

ほとんどのS3 SDKは、認証を自動的に処理します。以下は異なる言語での例です:
import boto3

s3_client = boto3.client('s3',
    endpoint_url='https://storage.nami.cloud',
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_KEY'
)

セキュリティのベストプラクティス

  1. 資格情報の保護
    • 資格情報をソース管理にコミットしない
    • 定期的に資格情報をローテーションする
    • 環境変数や安全な資格情報ストアを使用する
  2. アクセス制御
    • 最小権限の原則に従う
    • 可能な場合はバケットポリシーやIAMロールを使用する
    • アクセスパターンを定期的に監査する
  3. HTTPS
    • APIリクエストには常にHTTPSを使用する
    • SSL/TLS証明書を検証する
    • クライアントライブラリを最新の状態に保つ