Настройка Amazon S3 для обмена файлами в Rocket.Chat | Информационные технологии от Вальдемарыча

Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как настроить Amazon S3 для обмена файлами в Rocket.Chat.

Rocket.Chat — это мессенджер с открытым исходным кодом, который поддерживает групповые чаты, обмен файлами, видеоконференции, ботов и многое другое. Rocket.Chat можно установить на собственный сервер, а затем общаться, используя веб-интерфейс, персональный компьютер или мобильное устройство.

Подробно о том, как установить Rocket.Chat на Ubuntu Server, вы можете прочитать в моем руководстве «Установка Rocket.Chat на Ubuntu Server».

Также у вас должна быть учетная запись, обладающая правами администратора, в Amazon Web Services.

Обратите внимание, для настройки обмена файлами вам необходимо обладать правами администратора в Rocket.Chat.

Вначале создадим корзину, воспользовавшись сервисом Amazon S3. Корзина позволит хранить файлы, которыми будут обмениваться пользователи Rocket.Chat.

Переходим по ссылке https://console.aws.amazon.com/s3/, указываем при необходимости имя пользователя и пароль учетной записи, обладающей правами администратора, в Amazon Web Services и нажимаем на кнопку «Create bucket».

В поле «Bucket name» указываем уникальное DNS-совместимое имя для корзины.

Обратите внимание, на несколько важных вещей при создании нового имени для корзины:

  • Имя корзины должно быть уникальным для всех существующих сегментов в Amazon S3.
  • После создания корзины вы не можете изменить ее имя.
  • Выберите имя корзины, отражающее предназначения объектов, которые вы планируете в ней хранить. Это важно, так как имя корзины отображается в URL-адресе, который указывает на объекты в ней.

В данном руководстве в качестве имени корзины будет использоваться «rocketchat-heyvaldemar».

В поле «Region» указываем желаемый регион, в котором будет создана корзина.

Нажимаем на кнопку «Create».

Корзина успешно создана.

Теперь необходимо настроить права доступа к корзине, чтобы пользователи Rocket.Chat могли обмениваться файлами, используя эту корзину.

Выбираем ранее созданную корзину.

Переходим на вкладку «Permissions», затем выбираем «CORS configuration».

Далее вставляем следующую конфигурацию для работы корзины:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
	<AllowedOrigin>https://rocketchat.heyvaldemar.net</AllowedOrigin>
	<AllowedMethod>PUT</AllowedMethod>
	<AllowedMethod>POST</AllowedMethod>
	<AllowedMethod>GET</AllowedMethod>
	<AllowedMethod>HEAD</AllowedMethod>
	<MaxAgeSeconds>3000</MaxAgeSeconds>
	<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

В данном руководстве для доступа к Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому Rocket.Chat будет доступен из сети Интернет.

Нажимаем на кнопку «Save».

Изменения успешно сохранены.

Теперь необходимо создать политику для доступа к ранее созданной корзине.

Нажимаем на кнопку «Services» и в разделе «Security, Identity & Compliance» выбираем «IAM».

Далее переходим в раздел «Policies» и нажимаем на кнопку «Create policy».

Переходим на вкладку «JSON».

Вставляем следующие параметры для политики:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::rocketchat-heyvaldemar"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::rocketchat-heyvaldemar/*"
        }
    ]
}

В данном руководстве в качестве имени корзины используется «rocketchat-heyvaldemar». Вам нужно будет указать ваше имя корзины.

Нажимаем на кнопку «Review policy».

В поле «Name» указываем имя для новой политики и нажимаем на кнопку «Create Policy».

В данном руководстве в качестве имени политики для доступа к ранее созданной корзине будет использоваться «RocketChatFileUpload».

Политика успешно создана.

Теперь необходимо создать нового пользователя и назначить ему ранее созданную политику доступа к корзине. Этот пользователь потребуется для подключения Rocket.Chat к корзине.

Переходим в раздел «Users» и нажимаем на кнопку «Add user».

В поле «User name» указываем имя для нового пользователя и нажимаем на кнопку «Next: Permissions».

В данном руководстве в качестве имени пользователя будет использоваться «rocketchat-upload».

Далее выбираем «Attach existing policies directly».

В строке поиска указываем имя ранее созданной политики и в представленном результате поиска выбираем нужную политику.

В данном руководстве в качестве имени политики для доступа к ранее созданной корзине используется «RocketChatFileUpload».

Нажимаем на кнопку «Next: Tags».

На следующем шаге можно не вносить никаких изменений.

Нажимаем на кнопку «Next: Review».

Все готово для создания нового пользователя.

Нажимаем на кнопку «Create user».

Пользователь успешно создан и обладает необходимыми правами для доступа к ранее созданной корзине.

Теперь необходимо сохранить полученные «Access key ID» и «Secret access key». Эти данные понадобятся для подключения Rocket.Chat к ранее созданной корзине.

Сохраняем содержимое раздела «Access key ID» в надежное место.

Нажимаем на кнопку «Show» для отображения содержимого раздела «Secret access key» и сохраняем содержимое раздела в надежное место.

Нажимаем на кнопку «Close».

Новый пользователь появится в разделе «Users».

Теперь необходимо найти код для региона, в котором была создана корзина.

Переходим по ссылке https://docs.aws.amazon.com/general/latest/gr/rande.html и находим нужный код региона в колонке «Region» рядом с колонкой «Region Name», значение в которой должно соответствовать региону, в котором была создана корзина.

В данном руководстве корзина была создана в регионе «EU (Frankfurt)», соответственно необходимое значение кода региона будет «eu-central-1».

Теперь нужно указать параметры для подключения Rocket.Chat к ранее созданной корзине.

Заходим в Rocket.Chat под учетной записью с правами администратора, нажимаем на значок с изображением трех точек в левом верхнем углу экрана и выбираем «Administration».

Далее находим раздел «File Upload».

Параметр «File Uploads Enabled» должен иметь значение «True».

Параметр «Protect Uploaded Files» должен иметь значение «True».

Параметр «File Uploads Enabled» должен иметь значение «True».

Параметр «Enable Json Web Tokens protection to file uploads» должен иметь значение «True».

В поле «Strorage Type» выбираем «AmazonS3».

Параметр «File Uploads Enabled in Direct Messages» должен иметь значение «True».

Нажимаем на кнопку «Save Changes».

Далее нужно указать параметры в подразделе «Amazon S3».

В поле «Bucket name» указываем имя ранее созданной корзины.

В поле «Access Key» указываем «Access key ID», полученный ранее после создания пользователя.

В поле «Secret Key» указываем «Secret access key», полученный ранее после создания пользователя.

В поле «Region» указываем код региона корзины, полученный ранее по ссылке https://docs.aws.amazon.com/general/latest/gr/rande.html

Параметр «Proxy Avatars» должен иметь значение «True».

Параметр «Proxy Uploads» должен иметь значение «True».

Нажимаем на кнопку «Save Changes».

Теперь загрузим файл с компьютера в общий канал под названием IT, чтобы проверить корректность работы загрузки файлов в Rocket.Chat, используя сервис Amazon S3.

Открываем канал в Rocket.Chat, затем в правом нижнем углу экрана нажимаем на значок с изображением плюса и выбираем «Computer».

Выбираем файл, который необходимо загрузить.

Файл готов к загрузке.

Нажимаем на кнопку «Send».

Файл успешно загружен и доступен для всех участников канала IT в Rocket.Chat.

Теперь пользователи Rocket.Chat могут обмениваться файлами, используя сервис Amazon S3.

Автор

Привет, я Владимир Михалев, но друзья зовут меня Вальдемарыч. Я обладаю практическим опытом проектирования и сопровождения различных информационных систем. На моем веб-сайте ты найдешь подробные и понятные руководствами по настройке ИТ-решений. Окунись в океан, полный позитива и технологий! По вопросам сотрудничества: callvaldemar@gmail.com

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.