2017-04-24 5 views
0

내 응용 프로그램은 업로드 된 사용자 데이터를 Azure blob 저장소 계정에 저장합니다. 예를 들어 사진과 같은 것들입니다. blob은 관계형 데이터베이스의 해당 행의 기본 키 이름을 따서 명명됩니다. 예 : /tenants/12/users/456/photos/1563445.Azure blob 이름을 난독 화하거나 암호화 할 수 있습니까?

이 파일은 익명의 인증되지 않은 사용자가 액세스 할 수 있도록되어 있지만 기본 키 값 ("순차적 액세스"공격을 방지하기 위해 또는 경쟁 업체가 나의 서비스가 얼마나 인기가 있는지 보려면 공개하지 않으려합니다.).

현재 블롭 저장소 컨테이너는 비공개이며 모든 블롭 요청은 내 웹 응용 프로그램을 통해 프록시됩니다. 서버로드를 줄이기 위해 blob을 직접 노출하고 싶지만 원시 blob 이름을 최종 사용자에게 노출시켜 암호화되지 않은 데이터베이스 기본 키 값을 제공해야합니다.

공유 액세스 서명을 사용하여 얼룩에 대한 액세스를 차단할 수 있다는 것을 알고 있지만 그런 종류의 보안이 필요하지 않습니다. 단순한 대칭 암호화를 통해 얼핏 blob 이름을 혼란스럽게하고 싶습니다.

"순수한 Azure"접근 방식을 사용하고 BLOB 저장소를 직접 노출하는 방법이 있습니까? 아니면 자체 프록시를 사용해야합니까?

+1

파일을 해시하고 db에 참조를 보관할 때 파일을 업로드 할 수 있습니까? – CtrlDot

+0

SAS URL을 사용하지 않는 이유는 없습니다. 해당 보안 수준이 필요하지 않은 것은 사용자의 문제와 관련이 없습니다. – Sentinel

답변

1

이것은 전적으로 귀하와 귀하의 앱에 달려 있습니다. 컨테이너 및 BLOB 이름이 게시 된 명명 규칙을 따르는 한 원하는 이름을 지정할 수 있습니다. 그러나 만약 당신이 정말로 (데이터베이스 ID와 같은) 그들이 무엇인지 알기를 원한다면, 당신은 당신 자신의 매핑을 수행하고 그 맵을 어딘가에 저장할 필요가있을 것이다. blob 저장소에는 내장 된 난독 화 기능이 없습니다.

-1

아마 당신이 필요로하는 것은 그냥 좋은 생각이 아니다 사용자의 개인 데이터에 대한 공공 용기를 사용하여 일반적으로 그러나 hashids

을 hashids. SAS는 실제로 매우 안전합니다. 왜냐하면 peopel이 해킹되기 전에 링크가 만료되기 때문에 이미 만료되었을 것입니다.

+0

제품을 연결할 장소가 아닙니다. 그리고이 문제는 SAS가 좋든 나쁘 든, 또는 공공 컨테이너를 사용하는 것과 관련이 없습니다. –

+0

@DavidMakogon 작성자는 난독 화 BLOB 이름에 대해 물었습니다. 해시 코드는 분명히 그 해답입니다. 나는 이것이 '플러그 제품'이라고 생각하지 않는다. 그렇지 않으면 어떤 기술적 인 용어도 '플러그 제품'이 될 것이다. – xeranic