Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сделал домашку #1

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cert/
*.bkp
510 changes: 510 additions & 0 deletions Exc1/classification.drawio

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions Exc1/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,58 @@
# Задание 1. Разработка проверочного листа по безопасности данных

## Классификация данных

### Список данных

- База данных объектов недвижимости (client-mart-estate-db)

- Информация об объектах недвижимости [П]

- База данных для хранения информации об объектах недвижимости и сделкам по ним (client-mart-db)

- Стоимость объектов недвижимости [В]
- Сделки пользователей [K]

- База данных проведения онлайн-тура (client-tour-db)

- Онлайн туры [П]
- История проведения туров [В]

- База данных CRM (crm-db)

- Клиентские данные [K]

- База данных сервиса аутентификации покупателей (auth-db-1)

- Аутентификационные данные покупателей [K]
- История доступа в систему [К]

- База данных услуг ЖКХ по собственникам (tenant-core-db)

- Список услуг ЖКХ [П]
- Заявки на предоставление услуг [К]

- База данных CRM по собственникам (crm-tenant-db)

- Данные собственников [К]

- База данных бухгалтерского учета (accountant-db-1) на схеме она правда auth-db-1, но будем считать это ошибка

- Данные бух. учета [K]

- Физическое хранилище данных DWH (DWH Хранилище)

- Дублирование всех данных? [K]

- Служба каталогов, которая обслуживает прикладные бизнес-системы и системы обработки данных (AD1)

- Аутентификационные данные бухгалтеров [В]

- Служба каталогов, которая обслуживает финансовые сервисы (AD2)

- Аутентификационные данные менеджеров и бизнес аналитиков [В]

- Список поставщиков ресурсов ЖКХ [В]
- Ключи платежной системы [C]
- Список процессов компании [В]
- Данные для взаимодействия с Гос. органами [C]
Binary file not shown.
705 changes: 705 additions & 0 deletions Exc3/Exc3.drawio

Large diffs are not rendered by default.

30 changes: 30 additions & 0 deletions Exc3/readme.md
Original file line number Diff line number Diff line change
@@ -1 +1,31 @@
# Задание 3. Внешние интеграции

Интеллектуальный домофон. Включает функции классического видеодомофона — открытие по звонку. Также есть возможность распознавать пользователей по биометрии (по лицу) и автоматически открывать дверь, если им разрешён доступ в дом.

Интеллектуальный шлагбаум. Включает функции классического управления шлагбаумом и автоматически открывает доступ, если распознаёт номера автомобилей, которым въезд разрешён.

Новые данные:

1. Номера автомобилей
2. Биометрия (Лица пользователей)

Насколько я понимаю, все эти данные необходимо будет передавать партнеру,
т.к. иначе при проблемах с апи PropDevelopment люди не смогут попасть домой.

## Требования к безопасности

- С партнером необходимо подписать соглашени, а собственников уведомлять, что их биометрические данные могут быть переданы партнеру для обработки и хранения. От партнера необходимо будет получить подтверждение соответствия законодательству РФ
- Данные должны передавать по защищенному соединению (ssl/tls)
- Данные должны передаваться в минимальном объеме и по возможности не должны быть связаны с конкретным пользователем. Например номер машины не должен быть связан с владельцем, достаточно просто наличия номера в базе чтобы открыть шлагбаум. Аналогично с биометрией.

## Протоколы аутентификации и авторизации

Аутентификация сервисов должна проходить с использованием OAuth2.0.

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

## Взаимодействие между системами предприятия и внешней платформой

- Все моменты передачи данных должны фиксироваться в журнале.
- Недопустимо хранение неиспользуемых данных
- Взаимодействие должно происходить через выделенный api.
Binary file added Exc4/.DS_Store
Binary file not shown.
27 changes: 27 additions & 0 deletions Exc4/bindings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-role
namespace: default
subjects:
- kind: User
name: user1
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: reader
apiGroup: rbac.authorization.k8s.io
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: edit-role
namespace: default
subjects:
- kind: User
name: user2
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: editor
apiGroup: rbac.authorization.k8s.io
31 changes: 31 additions & 0 deletions Exc4/roles.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: reader
rules:
- apiGroups: [“”]
resources: ["pods", "services", "deployments"]
verbs: [“get”, “watch”, “list”]

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: editor
rules:
- apiGroups: [“”]
resources: ["pods", "services", "deployments"]
verbs: ["get","list","watch", "create","update","patch","delete"]

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: admin
rules:
- apiGroups: [“”]
resources: ["*"]
verbs: ["*"]
16 changes: 16 additions & 0 deletions Exc4/users.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
mkdir cert
cd cert
openssl genrsa -out user1.key 2048
openssl req -new -key user1.key -out user1.csr -subj "/CN=user1/O=group1"
openssl x509 -req -in user1.csr -CA ~/.minikube/ca.crt -CAkey ~/.minikube/ca.key -CAcreateserial -out user1.crt -days 500
kubectl config set-credentials user1 --client-certificate=user1.crt --client-key=user1.key
kubectl config set-context user1-context --cluster=minikube --user=user1

openssl genrsa -out user2.key 2048
openssl req -new -key user2.key -out user2.csr -subj "/CN=user2/O=group1"
openssl x509 -req -in user2.csr -CA ~/.minikube/ca.crt -CAkey ~/.minikube/ca.key -CAcreateserial -out user2.crt -days 500
kubectl config set-credentials user2 --client-certificate=user2.crt --client-key=user2.key
kubectl config set-context user2-context --cluster=minikube --user=user2

kubectl apply -f roles.yaml
kubectl apply -f bindings.yaml
Binary file not shown.
59 changes: 59 additions & 0 deletions Exc5/non-admin-api-allow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: admin-app-policy
namespace: default
spec:
podSelector:
matchLabels:
role: admin-back-end-api
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
role: admin-front-end
ports:
- protocol: TCP
port: 80
egress:
- to:
- podSelector:
matchLabels:
role: admin-front-end
ports:
- protocol: TCP
port: 80

---

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: app-policy
namespace: default
spec:
podSelector:
matchLabels:
role: back-end-api
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
role: front-end
ports:
- protocol: TCP
port: 80
egress:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а для admin-front-end?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не заметил :)

- to:
- podSelector:
matchLabels:
role: front-end
ports:
- protocol: TCP
port: 80
5 changes: 5 additions & 0 deletions Exc5/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
kubectl run front-end-app --image=nginx --labels role=front-end --expose --port 80
kubectl run back-end-api-app --image=nginx --labels role=back-end-api --expose --port 80
kubectl run admin-front-end-app --image=nginx --labels role=admin-front-end --expose --port 80
kubectl run admin-back-end-api-app --image=nginx --labels role=admin-back-end-api --expose --port 80
kubectl apply -f non-admin-api-allow.yaml
Loading