설명
Azure Storage Container의 container_access_type이 blob 또는 container이면 계정에서 익명 접근을 허용하고 네트워크로 도달할 수 있는 경우 인증 없이 Blob을 읽을 수 있습니다. 비공개 파일이나 내부 산출물이 포함되어 있으면 정보가 노출될 수 있습니다.
blob은 Blob 내용의 익명 읽기를 허용하고, container는 컨테이너의 Blob 목록 조회도 허용합니다. 이 공개 수준이 익명 쓰기 권한을 부여하는 것은 아닙니다.
잠재적 영향
- 내부 문서나 파일이 인증 없이 읽힐 수 있습니다.
- container 공개 수준에서는 Blob 목록을 통해 저장된 파일의 이름과 구성이 드러날 수 있습니다.
해결 방법
공개가 필요 없는 컨테이너의 container_access_type을 private으로 설정하세요. 계정 전체에서 익명 접근이 필요하지 않으면 계정의 Blob 공개 접근도 비활성화하세요. 데이터 접근에는 필요한 인증과 최소 권한을 적용하고, 의도적으로 공개하는 데이터는 분리하세요. 정상 클라이언트의 접근과 익명 요청 차단을 확인하세요.
예시
동일한 컨테이너의 공개 수준을 바꾸는 발췌입니다. storage_account_name을 지원하는 공급자 버전의 형식이며 계정 설정은 생략했습니다.
변경 전
hcl
resource "azurerm_storage_container" "artifact_container" {
name = "vhds"
storage_account_name = azurerm_storage_account.example.name
container_access_type = "blob"
}
blob 수준으로 설정하므로 계정의 허용 및 네트워크 조건이 충족되면 Blob 내용의 익명 읽기가 가능합니다.
변경 후
hcl
resource "azurerm_storage_container" "artifact_container" {
name = "vhds"
storage_account_name = azurerm_storage_account.example.name
container_access_type = "private"
}
private은 컨테이너의 익명 읽기를 허용하지 않습니다. 인증된 사용자나 유효한 SAS를 통한 접근 권한은 별도로 관리하세요.