Softlayer Api 使用 Terraform 进行身份验证

Softlayer Api Authentication with Terraform

我导出了 SL_USERNAME 和 SL_API_KEY 变量。我没有 link 我的 softlayer 帐户到 bluemix。

命令:

terraform import ibmcloud_infra_vlan.999 999

错误:

import ibmcloud_infra_vlan.999 result: 999: ibmcloud_infra_vlan.999: Error communicating with the API: SoftLayer_Exception_Public: Access Denied.  (HTTP 401)

这是否意味着用户没有 API 通话的权限?

我对 Terraform 不熟悉,但这 post 可能会对您有所帮助 How do I create a SoftLayer Vlan using Terraform?

要知道您是否能够使用您的用户名和 api 密钥发出请求,您可以使用客户端或任何 Web 浏览器执行单个 REST 调用。

以下示例可用于验证 API 访问权限。它应该 returns 有关您的 SL 帐户的信息。

https://[userName]:[apiKey]@api.softlayer.com/rest/v3/SoftLayer_Account/getObject

Method: GET

用你自己的数据替换[userName][apiKey]。如果响应显示 "Access Denied"。我建议您使用控制门户(配置文件)验证 userName 和 apiKey 是否正确。

考虑到 API 用户应该能够执行他在控制门户页面中能够执行的相同操作。例如,如果用户看不到 vlan,那么他将无法通过 API.

进行查看

所以用户名似乎是 API 用户名。不是您在用户页面中看到的那个。

并且 VLAN ID 在 URL 中。 https://control.softlayer.com/network/vlans/vlanid

所有其他资源 ID 也是如此。

并且您必须为您正在使用的用户修改允许的 IP。