Bird
Raised Fist0
Azurecloud~5 mins

Blob containers and access levels in Azure - Commands & Configuration

Choose your learning style10 modes available
Introduction
Blob containers store files in the cloud. Access levels control who can see or change these files. Setting the right access level keeps your data safe or open as needed.
When you want to share images publicly on a website without requiring login.
When you need to keep backup files private and only accessible by your app.
When you want to allow a team to upload and download files securely.
When you want to control if files can be listed or only accessed directly.
When you want to quickly change who can see your stored files without moving them.
Config File - container-policy.json
container-policy.json
{
  "SignedIdentifier": {
    "Id": "readpolicy",
    "AccessPolicy": {
      "Start": "2024-01-01T00:00:00Z",
      "Expiry": "2030-01-01T00:00:00Z",
      "Permission": "r"
    }
  }
}

This JSON defines a shared access policy named 'readpolicy' that allows read ('r') permission starting from January 1, 2024, until January 1, 2030. This policy can be applied to a blob container to control access.

Commands
Create a blob container named 'my-container' in the storage account 'mystorageaccount' with public read access to blobs only. This means anyone can read blobs but cannot list all blobs.
Terminal
az storage container create --name my-container --account-name mystorageaccount --public-access blob
Expected OutputExpected
{ "created": true }
→
--name - Specifies the container name
→
--account-name - Specifies the storage account name
→
--public-access - Sets the access level for the container
Show details of the container 'my-container' to verify its properties and access level.
Terminal
az storage container show --name my-container --account-name mystorageaccount
Expected OutputExpected
{ "name": "my-container", "publicAccess": "blob", "lastModified": "2024-04-27T12:00:00Z", "etag": "0x8D123456789ABC" }
→
--name - Specifies the container name
→
--account-name - Specifies the storage account name
Change the container 'my-container' access level to private, so no public read or list access is allowed.
Terminal
az storage container set-permission --name my-container --account-name mystorageaccount --public-access off
Expected OutputExpected
No output (command runs silently)
→
--public-access - Sets the access level; 'off' means private
Verify the container 'my-container' access level is now private.
Terminal
az storage container show --name my-container --account-name mystorageaccount
Expected OutputExpected
{ "name": "my-container", "publicAccess": null, "lastModified": "2024-04-27T12:05:00Z", "etag": "0x8D123456789DEF" }
→
--name - Specifies the container name
→
--account-name - Specifies the storage account name
Key Concept

If you remember nothing else from this pattern, remember: setting the right access level on a blob container controls who can read or list your files, protecting your data or sharing it safely.

Common Mistakes
Setting public access to 'container' when only blob-level access is needed
This allows anyone to list all blobs in the container, which may expose sensitive file names.
Use 'blob' access level to allow public read of blobs without listing the container.
Forgetting to specify the storage account name in commands
Commands fail because Azure CLI does not know which storage account to use.
Always include --account-name with the correct storage account.
Assuming private containers can be accessed publicly without a shared access signature
Private containers block all public access, so files cannot be read without proper authorization.
Use shared access signatures or change access level to allow public read if needed.
Summary
Create a blob container with az storage container create and set its public access level.
Check the container's access level with az storage container show to confirm settings.
Change access level to private with az storage container set-permission to restrict access.
Verify changes by showing container properties again.

Practice

(1/5)
1. What does setting a blob container's access level to private mean?
easy
A. Anyone can read blobs but cannot list them.
B. Anyone can read and list blobs in the container.
C. Only the owner can read or list blobs in the container.
D. The container is deleted automatically after 24 hours.

Solution

  1. Step 1: Understand the meaning of private access level

    Private means no public access; only authorized users can access blobs.
  2. Step 2: Compare with other access levels

    Unlike blob or container levels, private restricts all public read or list operations.
  3. Final Answer:

    Only the owner can read or list blobs in the container. -> Option C
  4. Quick Check:

    Private access = owner-only access [OK]
Hint: Private means no public read or list access [OK]
Common Mistakes:
  • Confusing private with blob-level public read
  • Thinking private allows public listing
  • Assuming private deletes container automatically
2. Which of the following is the correct way to set a blob container's access level to allow public read of blobs but not listing containers using Azure CLI?
easy
A. az storage container set-permission --name mycontainer --public-access container
B. az storage container set-permission --name mycontainer --public-access blob
C. az storage container set-permission --name mycontainer --public-access private
D. az storage container set-permission --name mycontainer --public-access none

Solution

  1. Step 1: Identify the access level for public read of blobs only

    The blob access level allows public read of blobs but not container listing.
  2. Step 2: Match the Azure CLI command syntax

    The command uses --public-access blob to set this level correctly.
  3. Final Answer:

    az storage container set-permission --name mycontainer --public-access blob -> Option B
  4. Quick Check:

    Blob access = public read blobs only [OK]
Hint: Use '--public-access blob' for public blob read only [OK]
Common Mistakes:
  • Using 'container' instead of 'blob' for public read
  • Using 'private' which disables public access
  • Using 'none' which is invalid in Azure CLI
3. Given a container with access level set to container, what will happen if an anonymous user tries to list blobs in the container?
medium
A. The user can list blobs and read blob content anonymously.
B. The container will block all anonymous requests.
C. The user can read blobs but cannot list them.
D. The user will receive an error because listing is not allowed.

Solution

  1. Step 1: Understand the container access level

    This level allows anonymous users to list blobs and read blob content.
  2. Step 2: Analyze anonymous user permissions

    Anonymous users can list blobs and read blobs but cannot modify or delete.
  3. Final Answer:

    The user can list blobs and read blob content anonymously. -> Option A
  4. Quick Check:

    Container access = public list and read [OK]
Hint: Container access allows public list and read [OK]
Common Mistakes:
  • Confusing container with blob access level
  • Assuming anonymous users cannot list blobs
  • Thinking container blocks anonymous requests
4. You set a blob container's access level to blob but anonymous users report they cannot list blobs. What is the most likely cause?
medium
A. The storage account is disabled.
B. The container name is incorrect in the URL.
C. The blobs are encrypted and cannot be read.
D. Blob access level does not allow listing blobs publicly.

Solution

  1. Step 1: Recall what blob access level permits

    Blob access allows anonymous read of blobs but not listing blobs in the container.
  2. Step 2: Evaluate other options for likelihood

    Incorrect container name or disabled account would cause different errors; encryption does not block listing.
  3. Final Answer:

    Blob access level does not allow listing blobs publicly. -> Option D
  4. Quick Check:

    Blob access = no public listing [OK]
Hint: Blob access disables public listing, only allows read [OK]
Common Mistakes:
  • Expecting blob access to allow listing
  • Blaming encryption for listing issues
  • Ignoring container name correctness
5. You want to share some files publicly but prevent users from listing all files in your Azure blob container. Which access level should you choose and why?
hard
A. Set access level to blob to allow public read of blobs but block listing.
B. Set access level to private to block all public access.
C. Set access level to container to allow public read and listing.
D. Set access level to public to allow full access.

Solution

  1. Step 1: Identify the requirement for public read without listing

    You want users to read files but not see all file names.
  2. Step 2: Match access level to requirement

    blob access allows public read of blobs but prevents listing container contents.
  3. Step 3: Exclude other options

    private blocks public read; container allows listing; public is not a valid access level.
  4. Final Answer:

    Set access level to blob to allow public read of blobs but block listing. -> Option A
  5. Quick Check:

    Blob access = public read, no listing [OK]
Hint: Use blob access to share files without listing [OK]
Common Mistakes:
  • Choosing container access which allows listing
  • Using private which blocks public read
  • Thinking 'public' is a valid access level
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard