みなさんこんにちは。ACS事業部の亀崎です。
2024年12月に公開されたAzure Bicep v0.32で、便利な関数がひとつ追加されました。それが deployer()
です。
通常BicepでAzure Resourceをデプロイする際は、作成・更新権限を持っていると思います。このためリソースオーナーなどの指定は必要ないことが多いです。しかし、それらのリソースの中のデータ(たとえばBlob Storageに配置するデータそのものの参照・更新権や、Keyvaultのシークレットそのものへのアクセス権)に対しては権限が付与されていません。このため、明示的に権限を付与するなどを行う必要があります。これまではそのために自身のObject Idなどを調べて明示的に設定していました。
こういった場合に活躍するのが deployer()
関数です。この関数はそのBicepを実行しているユーザーやサービスプリンシパルの情報を取得するものです。deployer()の実行結果は次のようなものになります。
{ "objectId": "principal-object-id", "tenantId": "prncipal-tenant-id" }
これを活用して、KeyVaultやBlob Storageなどのデータアクセス権を自分自身に付与することが簡単になります。 たとえば次のように利用します。
var dataOwnerObjectId = deployer().objectId
Azure Resourceは作成したけど、データアクセス権の付与を忘れ、あとからAzure Portalなどで追加で付与するといったことを頻繁にしていた自分にとって、この機能はとても助かります。
ぜひみなさんも最新のBicepをご利用いただき、この機能を活用してください。
# Bicepのバージョン確認方法 az bicep version # Bicepのアップデート az bicep update