このセクションでは、オブジェクトストレージ( Cinder )のボリュームを暗号化する方法について紹介します。ボリュームを暗号化するためには、鍵管理サービス( Barbican )がインストールされている必要があります。
暗号化ボリュームタイプの作成
admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。
[root@controller ~]# . openrc/admin-openrc [root@controller ~]#
暗号化するためのボリュームタイプを作成します。 – – encryption-provider luks ( Linux Unified Key Setup )を指定します。また、暗号化を実行する場所を指定するには、 – – encryption-control-location を使用します。encryption-control-location には、front-end または end-front を指定します。
[root@controller ~]# openstack volume type create --encryption-provider luks \ > --encryption-cipher aes-xts-plain64 --encryption-key-size 256 --encryption-control-location front-end ENCRYPT +-------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +-------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ | description | None | | encryption | cipher='aes-xts-plain64', control_location='front-end', encryption_id='f3303a96-7c60-4da1-9a45-7dc44afeb5ea', key_size='256', provider='luks' | | id | 47bcc566-c43d-4563-be67-5ad02f67cee2 | | is_public | True | | name | ENCRYPT | +-------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ [root@controller ~]#
暗号化されたボリュームの作成
暗号化ボリュームを作成します。ここでは、1GBのボリュームを作成しています。
[root@controller ~]# openstack volume create --size 1 --type ENCRYPT 'encrypted volume' +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2019-02-17T08:16:49.000000 | | description | None | | encrypted | True | | id | b2d268a2-0792-4fca-a296-25c6620c91c3 | | migration_status | None | | multiattach | False | | name | encrypted volume | | properties | | | replication_status | None | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | type | ENCRYPT | | updated_at | None | | user_id | d899029d484b4245afe48e5bafe2edb8 | +---------------------+--------------------------------------+ [root@controller ~]#
管理者以外のユーザーで秘密をBarbicanに保存し暗号化ボリュームを作成できるようにするために、ユーザーに作成の役割を付与します。管理者以外のユーザーでも暗号化ボリュームを作成するためには、役割の付与が必要となります。
[root@controller ~]# openstack role add --project myproject --user myuser creator [root@controller ~]#
暗号化しないボリュームの作成
ここでは、暗号化されたボリュームと暗号化していないボリュームの違いを確認するために、暗号化しないボリュームを作成します。
[root@controller ~]# openstack volume create --size 1 'unencrypted volume' +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2019-02-17T08:18:45.000000 | | description | None | | encrypted | False | | id | aef47c63-7dc7-4f40-905d-66aaecb546b4 | | migration_status | None | | multiattach | False | | name | unencrypted volume | | properties | | | replication_status | None | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | type | None | | updated_at | None | | user_id | d899029d484b4245afe48e5bafe2edb8 | +---------------------+--------------------------------------+ [root@controller ~]#
ボリューム暗号化の動作確認
作成したボリュームをマウントする仮想マシンに割り当てるOpenStack のネットワークを確認しておきます。
[root@controller ~]# openstack network list +--------------------------------------+--------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+--------------+--------------------------------------+ | 2769f828-ae94-4934-8b63-eb5a7a139b73 | local_area_2 | 812d8088-e027-452b-b006-3124bbee81c2 | | 43f15c29-76d3-479d-9df0-0b2de354713e | local_area_3 | 04360fb4-82c6-43f5-a448-a7a72e218d36 | | 538e6f7f-7cf2-4aac-a71c-925a64af82e8 | local area 1 | 955d14b8-c4c0-4c22-bda2-e07a33f11eb8 | | a07ede34-eb96-470e-97a8-6dd6917ba18d | provider | b80414a4-b901-4b5d-a030-b144e49733ca | | d5a64b49-d892-4157-bed1-101e2c2e2233 | local area 2 | 8170af31-d0bd-4731-9005-a4d81a164767 | | d8d35733-1299-40eb-8383-23b471adcd94 | local_area_1 | 9083cf5c-4f70-400d-b3ae-5154b6dd8f83 | +--------------------------------------+--------------+--------------------------------------+ [root@controller ~]#
作成したボリュームをマウントする仮想マシンに割り当てるOpenStack のキーペアを確認しておきます。
[root@controller ~]# openstack keypair list +------------+-------------------------------------------------+ | Name | Fingerprint | +------------+-------------------------------------------------+ | admin-key | a6:b9:a3:1b:08:79:bb:3a:35:c0:81:ab:fc:07:6e:dc | | magnum-key | 00:44:e0:17:b5:0a:e0:99:5f:d1:1e:e6:84:9d:5d:2a | +------------+-------------------------------------------------+ [root@controller ~]#
作成したボリュームをマウントする仮想マシンに割り当てるOpenStack のセリティグループを確認しておきます。
[root@controller ~]# openstack security group list +--------------------------------------+-----------------+--------------------------------------+----------------------------------+------+ | ID | Name | Description | Project | Tags | +--------------------------------------+-----------------+--------------------------------------+----------------------------------+------+ | 1165d0be-53fd-4034-8310-efb534ed584c | default | デフォルトセキュリティグループ | | [] | | 198603ee-a82d-4b57-b0b1-e7c142743f52 | lbaas | | 257bcb40994f44a1b2740dba5200d6c4 | [] | | 45d5ac9f-7c3e-441d-81b3-600f02371707 | database | | b9644b0689c4469baa45f9acb009d860 | [] | | 4ce6461c-af7a-44aa-9d50-a446e93f3ad7 | my_security_gp1 | | b9644b0689c4469baa45f9acb009d860 | [] | | 5aa1b2c3-76f8-4d7f-b610-d325b4af05c1 | wildfly | | 257bcb40994f44a1b2740dba5200d6c4 | [] | | 606dfa8d-42d9-4103-9bee-ac74f6ea5e22 | wildfly | | b9644b0689c4469baa45f9acb009d860 | [] | | 7075eae9-38e2-40df-bb48-bed509061a9f | my_security_1 | | 257bcb40994f44a1b2740dba5200d6c4 | [] | | 949ef0c5-d158-46c4-9697-0701b029ae83 | default | デフォルトセキュリティグループ | 257bcb40994f44a1b2740dba5200d6c4 | [] | | a06aba09-af87-46f2-8b36-885d7d8cd1b0 | default | デフォルトセキュリティグループ | faf1bcc101eb4c9d84198768deca78ce | [] | | a72ef77e-99c2-40e4-a86f-e2baaebb4605 | default | デフォルトセキュリティグループ | b9644b0689c4469baa45f9acb009d860 | [] | | d7c34b4f-9b17-4f12-a7dd-6a136200c7ab | Lbaas | ロードバランサのセキュリティグループ | b9644b0689c4469baa45f9acb009d860 | [] | | fe25bf1f-58de-4d0e-9f4d-5ed0370bfde6 | default | デフォルトセキュリティグループ | cfe83bbcacb94f2ebde2ab55e998dff2 | [] | +--------------------------------------+-----------------+--------------------------------------+----------------------------------+------+ [root@controller ~]#
作成したボリュームをマウントする仮想マシンに割り当てるOpenStack のフレーバーを確認しておきます。
[root@controller ~]# openstack flavor list +--------------------------------------+----------+------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +--------------------------------------+----------+------+------+-----------+-------+-----------+ | 0 | m1.nano | 64 | 1 | 0 | 1 | True | | 102 | micro | 1024 | 10 | 0 | 1 | True | | 202 | m1.small | 1024 | 30 | 0 | 1 | True | | 203 | m3.small | 2048 | 40 | 0 | 2 | False | | 3ae783ce-0d6c-4899-943b-6b9b0a4ffb9f | m2.small | 2048 | 10 | 0 | 1 | False | +--------------------------------------+----------+------+------+-----------+-------+-----------+ [root@controller ~]#
作成したボリュームをマウントする仮想マシンに割り当てるOpenStack のイメージを確認しておきます。
[root@controller ~]# openstack image list +--------------------------------------+---------------------------------+--------+ | ID | Name | Status | +--------------------------------------+---------------------------------+--------+ | fd476c96-73a7-4ce3-8074-841c4aced097 | CentOS-7-x86_4 | active | | dd690ce6-e572-43e4-a8a7-9e64cb96f9d0 | Fedora-Cloud-Atomic-22-20150521 | active | | 48662894-bdd4-4123-ac24-3792db1af15d | centos7-minimal | active | | 6b95a861-2df2-4ce7-b238-5cb5194f87c8 | cirros | active | | 61b50435-3256-41d2-b08e-e63313019cbd | db_1_20190104 | active | | a07d0c37-bde8-4e4b-a367-d7165eedecfa | java_1_20190101 | active | | a183e04a-8247-4d41-8644-2491a8a32cfa | server_1-20181223 | active | | b7fd17ac-07e1-47f9-8775-a83810a8e57e | server_1-20181223 | active | | 00d317ac-bee6-4e33-a8ed-8c1f3255f7d6 | server_snap | active | | 6bd37fc4-10eb-4fb7-b8bd-960becd0822f | snap | active | +--------------------------------------+---------------------------------+--------+ [root@controller ~]#
作成したボリュームをマウントする仮想マシンを作成します。
[root@controller ~]# openstack server create --image CentOS-7-x86_4 --flavor micro \ > --nic net-id=d8d35733-1299-40eb-8383-23b471adcd94 --security-group my_security_1 \ > --key-name admin-key TESTVM +-------------------------------------+-------------------------------------------------------+ | Field | Value | +-------------------------------------+-------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | | | OS-EXT-STS:power_state | NOSTATE | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | L5JSRMGWpK5y | | config_drive | | | created | 2019-02-17T08:30:25Z | | flavor | micro (102) | | hostId | | | id | d6489da3-18ac-421d-ab84-fce3df60dee4 | | image | CentOS-7-x86_4 (fd476c96-73a7-4ce3-8074-841c4aced097) | | key_name | admin-key | | name | TESTVM | | progress | 0 | | project_id | 257bcb40994f44a1b2740dba5200d6c4 | | properties | | | security_groups | name='7075eae9-38e2-40df-bb48-bed509061a9f' | | status | BUILD | | updated | 2019-02-17T08:30:25Z | | user_id | d899029d484b4245afe48e5bafe2edb8 | | volumes_attached | | +-------------------------------------+-------------------------------------------------------+ [root@controller ~]#
仮想マシンにマウントするためのボリュームを確認します。ここでは、先程作成した 暗号化したボリューム( encrypted volume )と 暗号化していないボリューム( unencrypted volume )が確認できます。
[root@controller ~]# openstack volume list +--------------------------------------+----------------------------------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+----------------------------------+-----------+------+-------------+ | aef47c63-7dc7-4f40-905d-66aaecb546b4 | unencrypted volume | available | 1 | | | b2d268a2-0792-4fca-a296-25c6620c91c3 | encrypted volume | available | 1 | | | 045c26a9-87b7-46be-8f93-392b0ffd06fd | server_3 | available | 10 | | | a255ddef-d670-465e-9396-fb90235880f8 | | available | 10 | | | dcb00afa-b0f5-440e-9001-518c431f966b | CentOS-7-x86_64-Minimal-1804_iso | available | 3 | | +--------------------------------------+----------------------------------+-----------+------+-------------+ [root@controller ~]#
仮想マシンに暗号化したボリューム( encrypted volume )と 暗号化していないボリューム( unencrypted volume )をマウントします。
[root@controller ~]# openstack server add volume --device /dev/vdb TESTVM 'unencrypted volume' [root@controller ~]# openstack server add volume --device /dev/vdc TESTVM 'encrypted volume' [root@controller ~]#