托管在Azure VM中的我的PHP应用程序,需要访问存储在私有Azure存储容器中的图像。
有人实施了成功的方法吗?我有3个想法(如下)。
选项1-使用Azure托管身份
选项2-使用Azure BLOB Storage SDK for PHP
选项3-使用Azure共享访问签名
谢谢!
根据您的需求和描述,我认为使用Azure托管身份访问Azure存储要比其他方法更好。因为,根据您的描述,如果我们使用第二种或第三种方法,则需要从Azure密钥保管库中获取存储密钥。它还需要我们使用MSI进行访问。此外,关于第三种方式,我们需要考虑sas令牌的生命周期。因此,我建议您使用MSI来访问Azure存储。
关于如何使用MSI访问Azure存储,请参考document。>>
获取令牌
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
Method: GET
URL: https://myaccount.blob.core.windows.net/mycontainer/myblob
Headers:
x-ms-version: 2019-02-02
Authorization : Bearer <access_token>