افزونه‌ها و اتصال‌ها

فضای سازگار با S3: rclone، restic و aws cli

ساخت باکت و کلید دسترسی، تنظیم rclone، restic و aws cli، و محدودیت‌ها و امنیت فضای S3.

به چه کاری می‌آید

بسیاری از ابزارهای پشتیبان‌گیری و همگام‌سازی (rclone، restic، Kopia، Duplicati، aws cli و نرم‌افزارهای پشتیبان سرور و NAS) فضای «S3 سازگار» را می‌شناسند. با این بخش، آن‌ها مستقیم در فضای پلن شما ذخیره می‌کنند، بدون اینکه فایلی از راه مرورگر بارگذاری شود.

فایل‌های S3 جدا از «فایل‌ها»ی پنل نگه داشته می‌شوند: در فهرست فایل‌ها و جستجو نمی‌آیند، لینک اشتراک ندارند و فقط با کلید دسترسی خوانده می‌شوند. حجمشان از فضای پلن کم می‌شود، ولی جزو سقف تعداد سند نیستند.

راه‌اندازی

  1. در پنل «همه ابزارها ← فضای سازگار با S3» را باز کنید (مالک یا مدیر فضای کاری).
  2. یک باکت بسازید؛ نام با حروف کوچک انگلیسی، رقم و خط تیره، مثل server1-backups.
  3. یک کلید دسترسی بسازید. برای هر سرور یا ابزار کلید جدا بسازید و اگر لازم نیست بنویسد، «فقط خواندن» یا محدود به یک باکت انتخاب کنید.
  4. Access Key ID و Secret Access Key را همان لحظه در تنظیمات ابزار بگذارید. کلید محرمانه فقط یک بار نمایش داده می‌شود و آن را برای کسی (از جمله پشتیبانی) نفرستید.
  5. Endpoint (نشانی سرویس) و Region را از همان صفحه بردارید. در ابزار، سرویس «S3 سازگار» یا Other را انتخاب کنید و path-style را روشن بگذارید.

rclone

  1. در rclone config یک remote از نوع s3 با provider = Other بسازید و access_key_id، secret_access_key، endpoint و region = us-east-1 را وارد کنید؛ force_path_style = true.
  2. همگام‌سازی: «rclone sync /var/backups pooshe:نام-باکت/server1». با «rclone check» درستی نسخه را بسنجید.
  3. نمونه‌ی کامل تنظیمات با نشانی سرویس شما در همان صفحه‌ی پنل (برگه rclone) آماده است.

restic

  1. AWS_ACCESS_KEY_ID و AWS_SECRET_ACCESS_KEY را در محیط بگذارید و مخزن را «s3:نشانی-سرویس/نام-باکت/نام-سرور» تعریف کنید.
  2. «restic init» یک بار؛ بعد «restic backup مسیرها» را در cron بگذارید و «restic forget --keep-daily 7 --prune» را برای نگهداری چند نسخه.
  3. رمز مخزن restic را جای امنی جدا از سرور نگه دارید: restic داده‌ها را پیش از ارسال رمز می‌کند و بدون این رمز، پشتیبان قابل بازگردانی نیست. پوشه این رمز را ندارد.
  4. restic نشانی سرویس با مسیر (مثل …/api/s3) را نمی‌پذیرد؛ به نشانی جداگانه‌ی S3 (مثل s3.دامنه) نیاز دارد که در صفحه پنل نمایش داده می‌شود اگر راه‌اندازی شده باشد.

aws cli

  1. aws configure را با کلیدها پر کنید و «aws configure set default.s3.signature_version s3v4» را یک بار بزنید (aws cli نسخه‌ی ۱ برای لینک امضاشده به‌طور پیش‌فرض امضای قدیمی می‌سازد که پذیرفته نمی‌شود).
  2. هر فرمان را با --endpoint-url نشانی-سرویس بزنید، مثل «aws --endpoint-url … s3 sync ./backup s3://نام-باکت/backup».

محدودیت‌ها

هر فایل با یک بار بارگذاری تا ۵ گیگابایت؛ فایل بزرگ‌تر با بارگذاری چندبخشی (حداکثر ۱۰٬۰۰۰ بخش) که ابزارها خودکار انجام می‌دهند. بارگذاری چندبخشیِ نیمه‌کاره پس از ۷ روز خودکار لغو و فضایش آزاد می‌شود.

تا ۱۰۰ باکت و ۲۰ کلید فعال در هر فضای کاری. نسخه‌گذاری (versioning)، قفل شیء، چرخه‌ی عمر، دسترسی عمومی و میزبانی وب پشتیبانی نمی‌شوند؛ برای نگهداری چند نسخه از ابزار پشتیبان‌گیری (مثلاً restic) استفاده کنید.

فقط امضای نسخه‌ی ۴ (SigV4) پذیرفته می‌شود؛ ابزارهای امروزی پیش‌فرضشان همین است.

اگر فضای پلن پر شود، بارگذاری تازه با خطای QuotaExceeded رد می‌شود و فایل‌های قبلی دست نمی‌خورند.

امنیت و تغییر پلن

هر درخواست با کلید امضا می‌شود و هیچ فایلی عمومی نمی‌شود؛ درخواست اشتراک عمومی (ACL عمومی) رد می‌شود. لینک امضاشده‌ای که ابزارها می‌سازند تا زمان انقضایش کار می‌کند و فایل را فقط برای دانلود می‌دهد.

کلید با دسترسی کسی که آن را ساخته کار می‌کند: اگر او از فضای کاری برود یا دسترسی مدیریت را از دست بدهد، کلید از کار می‌افتد. با «باطل کردن» در پنل هم فوراً قطع می‌شود.

اگر پلن تمام شود یا به پلنی بدون این امکان بروید، چیزی پاک نمی‌شود: کلیدها هنوز می‌توانند بخوانند و حذف کنند، ولی بارگذاری تازه تا تمدید یا ارتقا ممکن نیست. وقتی فضای کاری تعلیق است، فقط خواندن ممکن است.