White paper "Security and the Oracle Database Cloud" можно скачать тут. В данной статье приводится краткое содержание документа.
Oracle предлагает набор облачных решений в двух вариантах, частные облака, это те, которые заказчик может развернуть у себя, на своих собственных ресурсах, и публичные облачные решения, которые можно приобрести и пользоваться ими удаленно. Одним из таких облачных решений является сервис Oracle Public Database Cloud. Попасть на данный сервис можно пройдя по ссылке https://cloud.oracle.com (нажать "Try it" на главной странице, и далее "Try it" в разделе Database). Подробную инструкцию как создать сервис, активировать его, запустить и начать пользоваться можно посмотреть тут.
Сервис Oracle Public Database Cloud построен на основе базы данных Oracle, работающей на сервере Oracle Exadata. Для предоставления доступа к данным, хранящимся в вашей облачной базе, используется веб-сервис RESTful (через простые URI). Для обеспечения быстрой разработки прикладного ПО на основе СУБД Oracle в публичной БД уже предустановлен APEX - Oracle Application Express. А так же имеется возможность использовать набор уже имеющихся бизнес приложений, которые могут быть установлены в несколько кликов.
При переходе организации на модель общего доступа к ресурсам в облаке, одним из ключевых вопросов является обеспечениие безопасности данных, хранящихся в облаке. В данном документе рассматривается несколько аспектов обеспечения безопасности данных в облаке:
- Описаны основные сущности, используемые для разграничения прав доступа к сервисам БД: Account, Identity Domains (далее "Домен"), User, Role и Database Cloud Service. Account - это учетная запись организации, которая может иметь один или несколько доменов, но домены при этом будут разделены и обособлены. Домен контролирует аутентификацию и авторизацию (т.е. кто может выполнять вход и к чему он имеет доступ). Домен содержит в себе список пользователей, которым назначаются роли, дающие те или иные права к сервисам. При первом входе в облачную базу создается один домен и его администратор, который в дальнейшем отвечает за управление всеми пользователями и ролями для всех сервисов в пределах домена. Для управления правами доступа к сервисам используется Cloud Identity Manager. Инструкцию по управлению ролями и пользователями можно найти тут. В данном контексте сервис представляет собой одну схему в общей БД, которая изолирована от других схем.
- Ко всем данным, хранящимся в облаке, применяется "Прозрачное шифрование" - Transparent Data Encryption. TDE шифрует данные на диске и в бекапе, защищая от неавторизованного доступа напрямую к файлам базы. Шифрование и расшифровка данных происходит автоматически и не требует какого либо программирования или настроки.
Для защиты от вредоносного кода, который может повлиять на данные всех пользователей, используется Secure FTP сервер. При загрузке файлы с данными сначала сохраняются на Secure FTP сервере. Там они проверяются на вирусы и далее загружаются на сервис вашей облачной базы данных, используя информацию вашей учетной записи БД. Этот двух этапный процесс так же автоматически сжимает данные перед загрузкой, снижая тем самым время загрузки данных в БД.
- Применяются правила БД для разграничения прав в многопользовательской среде. Например, запрещен доступ на просмотр представлений, позволяющих владецу схемы БД видеть существование других схем БД. Запрещены некоторые виды SQL, такие как GRANT или REVOKE, т.к. они позволяют владельцу схемы выдавать права на свои объекты для другого владельца схемы базы данных.
- Для разработки прикладных приложений используется технология APEX, которая имеет собственные средства безопасности. APEX поддерживает несколько схем аутетификации. Экранирование спецсимволов в скриптах не позволяет вкладывать различные типы скриптов в страницы, возвращаемые пользователям. APEX имеет опцию автоматической защиты навигационных ссылок (URL). Так же APEX включает в себя средства для мониторинга и отчеты.
- Для обесечения безопасной передачи данных между клиентом и сервисом следует включить HTTPs.
Сервис базы данных в облаке основывается на одной схеме и все RESTful веб-сервисы выполняются от имени владельца этой схемы. Вследствие этого, без применения дополнительной защиты RESTful сервис вернет все данные, возвращаемые SQL выражением. В документе описано четыре способа для обеспечения безопасности веб-сервиса RESTful:
- - собственными средствами RESTful;
- - доступ конкретному приложению (используется OAUTH Request token встроенный в клиента приложения);
- - доступ конкретному пользователю (на основе идентификационных данных пользователя);
- - логическое разграничение доступа (с использованием параметра OAM_REMOTE_USER, содержащего в себе идентификационную информацию пользователя).