From c8cc17047d1b73c7ee24083c4c03330cd128e512 Mon Sep 17 00:00:00 2001 From: vitya Date: Sat, 19 Sep 2026 22:05:36 +0300 Subject: [PATCH] =?UTF-8?q?fix(secrets):=20=D0=B2=D1=8B=D1=87=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D1=82=D1=8C=20MinIO-=D0=BA=D1=80=D0=B5=D0=B4=D1=8B?= =?UTF-8?q?=20=D0=B8=D0=B7=20.wiki=20file-=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20(task:3076)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .wiki/concepts/minio-imgproxy-on-vds.md | 2 +- .wiki/concepts/stostayer-admin-minio-config.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.wiki/concepts/minio-imgproxy-on-vds.md b/.wiki/concepts/minio-imgproxy-on-vds.md index 91f5fe0..aca1a56 100644 --- a/.wiki/concepts/minio-imgproxy-on-vds.md +++ b/.wiki/concepts/minio-imgproxy-on-vds.md @@ -20,7 +20,7 @@ related: [[vds-kzntsv]], [[recovery-architecture-snapshot]], [[mssql-on-vds]], [ | Endpoint (внешний, TLS) | `https://minio.kzntsv.site` (traefik → `minio:9000`, LE cert, port 443) | | Endpoint (сырой host-порт) | `http://89.253.255.133:9000` (тот же бэкенд, ssl:false) | | Endpoint (inter-container на books-vds) | `http://minio:9000` (сеть `proxy`) — так ходит imgproxy | -| accessKeyId | `AKIAJ2YJP72W6ZHCRE6Q` (= `MINIO_ACCESS_KEY`, root, read+write all) | +| accessKeyId | `secret:pass/minio-vds/full-env` (= `MINIO_ACCESS_KEY`, root, read+write all) | | secretAccessKey | в `pass minio-vds/full-env` (`MINIO_ROOT_PASSWORD`) | | region / pathStyle / ssl | `local` / `true` / **`true` для https-хостнейма** (false для сырого `:9000`) | diff --git a/.wiki/concepts/stostayer-admin-minio-config.md b/.wiki/concepts/stostayer-admin-minio-config.md index bfbb874..9195e80 100644 --- a/.wiki/concepts/stostayer-admin-minio-config.md +++ b/.wiki/concepts/stostayer-admin-minio-config.md @@ -22,7 +22,7 @@ updated: 2026-07-22 | Параметр | Значение | |---|---| | accessKeyId | `stayer_minio` (bucket-user) | -| secretAccessKey | `cXY>AVoWBv#_V-SZn6Vu6Tzx&!M[%UOod` | +| secretAccessKey | `secret:stostayer/minio` | | endpoint | `https://minio-api.stostayer.ru` | | region | `us-west-1` (см. ниже — НЕ `local`) | | pathStyle / ssl | `true` / `true` | @@ -31,7 +31,7 @@ imgproxy: `https://imgproxy.stostayer.ru`, basePath `/imgproxy2`, key+salt — ## Три бага в исходном Web.config (почему "смотрит на локальное") -1. **Чужие креды.** `accessKey=AKIAJ2YJP72W6ZHCRE6Q` + `secretKey=7o0Q4NjE5GL…` — это **books-vds/snolla MinIO root-ключ** (см. [[minio-imgproxy-on-vds]]). На stostayer MinIO не зарегистрирован → `The Access Key Id you provided does not exist in our records`. Видимо, конфиг копипастом из snolla catch-all admin ([[snolla-local-admin-and-on-snolla-migration-design]], тот юзает books-vds `minio.kzntsv.site`), без замены ключей на stostayer-свои. +1. **Чужие креды.** `accessKey=secret:pass/minio-vds/full-env` + `secretKey=5GL…` — это **books-vds/snolla MinIO root-ключ** (см. [[minio-imgproxy-on-vds]]). На stostayer MinIO не зарегистрирован → `The Access Key Id you provided does not exist in our records`. Видимо, конфиг копипастом из snolla catch-all admin ([[snolla-local-admin-and-on-snolla-migration-design]], тот юзает books-vds `minio.kzntsv.site`), без замены ключей на stostayer-свои. 2. **Не API-порт.** `serviceURL=https://minio.stostayer.ru` → MinIO отвечает `S3 API Requests must be made to API port`. Прод юзает `https://minio-api.stostayer.ru`. Оба хоста резолвятся в один IP `2a03:6f01:1:2::c66b`, но `minio.stostayer.ru` — не S3 API-эндпоинт. 3. **Регион.** `authenticationRegion="local"` → SigV4-подпись регионом не совпала → `AmazonS3Exception: The authorization header is malformed; the region is wrong; expecting 'us-west-1'` (HTTP 400) на `GalleriesStorage.EnsureKeyPrefixExists` → `S3DirectoryInfo.ExistsWithBucketCheck` (провайдер галерей падал на ините, в трассе `ToolsController.ImagePreview` → `CreatePreview`). stostayer MinIO настроен на регион `us-west-1`. Прод `default.json` пишет `region:"local"`, но то Node aws-sdk (galleries через imgproxy мимо app-S3; для .NET AWSSDK регион обязан быть `us-west-1`). @@ -40,8 +40,8 @@ imgproxy: `https://imgproxy.stostayer.ru`, basePath `/imgproxy2`, key+salt — 9 S3-блоков в `fileStorageClients` (galleries/assets/images/scripts/stylesheets/imageCache/watermarks + inert-настройки contentCache/uploadCache) — 3 глобальные замены в `Web.config`: ``` -accessKey: AKIAJ2YJP72W6ZHCRE6Q → stayer_minio -secretKey: 7o0Q4NjE5GLkdC48r0oZFEnqddjPNLqtCk+ZEh+S → cXY>AVoWBv#_V-SZn6Vu6Tzx&!M[%UOod (XML-escape: > → >, & → &) +accessKey: secret:pass/minio-vds/full-env → stayer_minio +secretKey: secret:pass/minio-vds/full-env → cXY>AVoWBv#_V-SZn6Vu6Tzx&!M[%UOod (XML-escape: > → >, & → &) serviceURL: https://minio.stostayer.ru → https://minio-api.stostayer.ru authenticationRegion: local → us-west-1 ``` @@ -68,4 +68,4 @@ authenticationRegion: local → us-west-1 - [[galleries-storage-class-local-not-s3]] — snolla-тираж: galleries/assets Local→S3 миграция, snolla catch-all admin на books-vds MinIO. - [[snolla-admin-appdata-acl-500-after-scp-migration]] — split-brain админка(Local)↔боевой app(MinIO) на RUVDS; та же проблема «админка не переключена на S3». -- [[minio-imgproxy-on-vds]] — books-vds MinIO (root-ключ `AKIAJ2YJP72W6ZHCRE6Q`), который ошибочно попал в stostayer Web.config. \ No newline at end of file +- [[minio-imgproxy-on-vds]] — books-vds MinIO (root-ключ `secret:pass/minio-vds/full-env`), который ошибочно попал в stostayer Web.config. \ No newline at end of file