2023-03-29 13:35:19 +02:00

4.3 KiB

title

Swift

OpenStack Swift

Open Telekom Cloud Swift is not matching the OpenStack software. As an attempt to overcome compatibility issues a real upstream software can be used with no code changes.

At a Glance

Hosts
Projects
Configuration
Bugs
Resources

Overview

Upstream OpenStack Swift software is deployed in an isolated Open Telekom Cloud project and is exposed using the Cloud Load Balancer.

Software Architecture

Software components

  • OpenStack Swift Proxy service - Authorization and API handling
  • OpenStack Swift Storage services - Data storage
  • Keystone authentication middleware (validatetoken) - oslo middleware to verify token information

Network setup

  • external network (API handling)
  • storage network (communication between proxy services and storage nodes)
  • replication network (data synchronization between storage nodes)
  • management network (used to provision software)
  • cloud load balancer is using the external network to communicate with Swift proxy servers

Security Design

Swift is not having any authentication database. In order to verify validity of the API request it sends API request to the Keystone (IAM) for the verification of the passed token. When the positive information is received Swift decides further on whether the user is authorized to do the action. This is happening based on the roles the user has and does not require any additional (local) information.

Software is deployed in an isolated Project of the Open Telekom Cloud public Domain and does not share the infrastructure with any other components. Management of the installation is achieved using the vpc peering between management network of the installation and the bridge.

User data is stored on the Storage nodes not encrypted. Technically it is possible to enable encryption, but due to the absense of any customer or in any other way sensitive data it is not enabled.

Separation

  • Software is deployed in an isolated project
  • Hosts to run the software has multiple networking interfaces and only required traffic is allowed to run (default - drop)

Interface Descritpion

Service is exposed to the internet only through the load balancer HTTPS port. This implements REST API <https://docs.openstack.org/api-ref/object-store/>. Authorization requires passing X-Auth-Token header with a valid Identity token.

Tenant Security

An isolated project and isolated management user is used.

O&M Access Control

Only users enabled in the :git_file:`inventory/base/group_vars/all.yaml` are able to login to the underlaying infrastructure.

Logging and Monitoring

There are 2 sets of logs available:

  • proxy logs (on the proxy VMs)
  • account/container/object service log (on the storage VMs)

Certificate Handling

SSL Certificates are obtained using Let's Encrypt Certificate authority (:git_file:`playbooks/acme-certs.yaml). Certificate for Swift is generated on the :ref:`bridge host and is uploaded to the Cloud Load Balancer service after rotation.

Backup and Restore

No Backup and Restore functionality is currently implemented.

User and Account management

Official Open Telekon Cloud Identity Service (IAM) is used for user and account management. No related data is stored in Swift.

Communication Matrix

External communication matrix
From/To Swift elb
Swift N/A N/A
elb HTTP(8080) N/A
Internal communication matrix
From/To bridge proxy storage
bridge SSH SSH SSH
proxy N/A N/A TCP(6200,6201,6202)
storage N/A N/A Rsync

Deployment