Skip to main content
Azure - Shared Access Signature (SAS) - Account key vs User Delegation

#cloud #azure

Hi All!

I would say Azure storage account is a long last service. Whatever the services overcome one another, azure storage stays active. For example, we can take a .NET web application which can be hosted in IIS of a Azure VM, App service with or without Docker, Function app for event based. Here based on requirements App service sometimes overcome VM and function app overcomes rest of others and so on.

When we use any of the cloud service, security is one of the main pillar need to consider. Here we are going to talk about Blob storage account access granting to customer or somebody else who requires it.

Consider a scenario that customer application place a file, it would be csv or JSON or XML what ever it may be but a single type. Let's take JSON here.

We need to allow some people to access that file. Here we have two questions as below

  1. Who are those some people whether Azure AD user or Non-Azure AD user?
  2. What permission we need to grant? so only granting Read permission is sufficient or should we grant some additional access as well?

For #2, If they want to only access / download, we can grant only Read and List permission is SAS. No need to grant Write, Delete, Create etc.,

The main purpose of this post is to discuss the question no.1

we have 2 types of signing method

  1. User Delegation
  2. Account Key

If the team or specific users who are part of Azure AD needs to access blob(s), we can go for user delegation.

If the team or specific users who are not part of Azure AD needs to access blob(s), we can go for Account Key.

The vital part of Account key SAS is, If any body rotate the key (Access Key), SAS may become invalid. We need to recreate the SAS to share with the people who already has previous one.

Account Key based SAS can be generated based on Key1 or Key2 as you can see in the below image,If you rotate key1, only key1 gets afftected.

Comments

Popular posts from this blog

Azure Public IP(s) are zone redundant free of cost natively - Generally Available Availability zone gives high availability to an application as well as information by forestalling the physical datacenter disappointments by involving replication of the asset in extra datacenter. Azure typically has 3 zones per region (and not all regions support zone). Thus, while setting up the environment we really want to pick the right region based on our usecase. Public IP helps to access a resource or an application publicly. Azure offers 2 types of SKU for public IP as below Basic Standard Only Standard SKU gives zone facility. Basic SKU is always non-zonal and this SKU also will be retired 09/2025. Standard public IP can be fell into any of the below category No Zone / Non-Zonal - No availability zone at all Zonal - Our services can be replicated in any one of selected zones from three zones. Zone redundant - Resource will be replicated in all 3 zones. It is opposite of...
Avoid YAML Validation error in azure devops pipeline Hi All! Consider a scenario that you committed a YML CI/CD file on the repository with some syntax, indentation and/or other error(s). so that pipeline failed. After you find some errors and rectified in the repository file and committed again but pipeline still gets failed because some errors are still there. Now you afraid that even if you fixed error in all the places, what happens if pipeline failed again because your project lead or manager set up build notification mail trigger for build success and fails. you need to answer them for build fail reason. Azure devops pipelines offers YAML validation feature after altered and before committed and before run pipeline. To utilize this feature, what we do is, Instead of modifying the file from repository, Do as below Go to the specific build click "Edit Pipeline" Modify/fix errors and click "validate" as shown in the picture below ...
Azure Blob - Convert blob access tier on Page and append blobs Hi All Azure storage account is one of the mostly used service by many people and it has page, append and block blob types on storage blob. To have blobs in "Hot" tier incur some more cost but it is prffered for frequently accessed. so if our blob is required but less access then we can change its access tier to keep it with low cost then at the time of need we can change it back to original type. we can set access tier only for block blobs. For remaining blob types, there is no direct way to set access tiers. so how can we achieve it? we need to change blob type to block blob and apply access tier for it then when we need original blob with appropriate, we need to typecast from the recent one we converted. In the below image, Initially I have an append blob called "1.JPG". when you see it, you could not see its access tier whereas bloc blob shows as "Hot" Now, Let's...