如何授予 Openstack 服务器调用 Openstack API 的权限?

How do I give an Openstack server permissions to call the Openstack APIs?

我知道权限系统在 AWS 中是如何工作的: 通过提供 EC2 instance a specific IAM role,可以为该特定 EC2 实例上的所有程序 运行 提供一组访问其他 AWS 服务的权限(例如删除 EBS 卷的权限)。

Openstack 有类似的东西吗?如果您希望 Openstack 服务器上 运行 的程序能够通过 Openstack API:s 以编程方式进行更改,您如何解决这个问题?

我想到的场景是这样的: 您创建一个新的 Rackspace OnMetal cloud server together with an extra Rackspace Cloud Block Storage volume, and copy a big input data file to it with scp. You log in to the server with ssh and start a long running compute job. It would be great if the compute job by itself would be able to copy the result files to Rackspace Cloud Files 然后卸载并删除 在计算期间用作临时存储的 Rackspace 云块存储卷。

Rackspace's Role Based Access Control (RBAC) 系统类似于 AWS IAM 角色。它允许您创建仅限于特定 API 和功能的用户。例如,只读云文件用户,或云块存储管理员。

您可以创建一个新用户,该用户只能访问此计算作业所需的区域,例如云块存储和云文件。然后您的工作将使用该用户的 api 密钥 request a token and call the cloud block storage and cloud files api.

您没有提到具体的语言,但我建议使用 SDK,因为它将处理 API 细节和怪癖,让您更快地 运行。