第 12 章 创建用于外部访问的 Ceph 密钥
对 Ceph 存储的外部访问可从任何非本地站点访问 Ceph。中心位置上的 Ceph 存储是边缘(DCN)站点的外部存储,就像边缘的 Ceph 存储是中央位置的外部。
当您使用 Ceph 存储部署中央或 DCN 站点时,您可以选择将默认 openstack
密钥环用于本地和远程访问。例如,您可以创建单独的密钥供非本地站点访问。
如果您决定使用额外的 Ceph 密钥来访问外部站点,每个密钥必须具有相同的名称。密钥名称在以下示例中是外部的。
如果您使用单独的密钥进行非本地站点访问,则获得额外的安全优势,以便在不中断本地访问的情况下对外部事件进行撤销并重新发布外部密钥。但是,对外部访问使用单独的密钥将导致丢失访问某些功能,如跨可用区备份和离线卷迁移。您必须根据所需的功能集对安全公开的要求进行平衡。
默认情况下,中央和所有 DCN 站点的密钥都会被共享。
12.1. 创建用于外部访问的 Ceph 密钥
完成以下步骤,为非本地访问创建 外部
密钥。
Process
创建用于外部访问的 Ceph 密钥。这个密钥是敏感的。您可以使用以下方法生成密钥:
python3 -c 'import os,struct,time,base64; key = os.urandom(16) ; \ header = struct.pack("<hiih", 1, int(time.time()), 0, len(key)) ; \ print(base64.b64encode(header + key).decode())'
在您要部署的堆栈的目录中,使用密钥的输出结果创建一个
ceph_keys.yaml
环境文件,其内容如下:parameter_defaults: CephExtraKeys: - name: "client.external" caps: mgr: "allow *" mon: "profile rbd" osd: "profile rbd pool=vms, profile rbd pool=volumes, profile rbd pool=images" key: "AQD29WteAAAAABAAphgOjFD7nyjdYe8Lz0mQ5Q==" mode: "0600"
在站点部署中包含
ceph_keys.yaml
环境文件。例如,要使用ceph_keys.yaml
环境文件部署中央站点,请运行以下命令:overcloud deploy \ --stack central \ --templates /usr/share/openstack-tripleo-heat-templates/ \ …. -e ~/central/ceph_keys.yaml