PHP对私有Azure存储容器的访问

问题描述 投票:0回答:1

托管在Azure VM中的我的PHP应用程序,需要访问存储在私有Azure存储容器中的图像。

有人实施了成功的方法吗?我有3个想法(如下)。

选项1-使用Azure托管身份

  1. 为应用提供管理身份
  2. 授予RBAC容器读取权限
  3. 在PHP中向VM实例元数据端点发出curl请求以获取访问令牌
  4. 在所有图像请求中都使用此令牌(我将如何在应用程序中保留该令牌?)

选项2-使用Azure BLOB Storage SDK for PHP

  1. 使用Azure Blob存储SDK检索图像
  2. 这需要将存储密钥从我的保管库返回到应用程序

选项3-使用Azure共享访问签名

  1. 为每个图像在PHP中生成新的SAS
  2. 需要存储帐户密钥

谢谢!

php azure security storage azure-managed-identity
1个回答
0
投票

根据您的需求和描述,我认为使用Azure托管身份访问Azure存储要比其他方法更好。因为,根据您的描述,如果我们使用第二种或第三种方法,则需要从Azure密钥保管库中获取存储密钥。它还需要我们使用MSI进行访问。此外,关于第三种方式,我们需要考虑sas令牌的生命周期。因此,我建议您使用MSI来访问Azure存储。

关于如何使用MSI访问Azure存储,请参考document。>>

  1. Configure managed identities fro VM vai Azure Portalenter image description here

  2. Grant the VM access to an Azure Storage containerenter image description hereenter image description here

  3. 获取令牌

  4. Method: GET
    URL: http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://storage.azure.com/
    Headers: Metadata : true
    

enter image description here

  1. 测试。例如,我将其余api称为get blob
  2. Method: GET
    URL: https://myaccount.blob.core.windows.net/mycontainer/myblob
    Headers: 
             x-ms-version: 2019-02-02
             Authorization : Bearer <access_token> 
    

enter image description here

推荐问答
热门问答
最新问答