스토리지 컨테이너에 대한 SAS 토큰 만들기

이 문서에서는 Azure Portal 또는 Azure Storage Explorer를 사용하여 사용자 위임, SAS(공유 액세스 서명) 토큰을 만드는 방법을 알아봅니다. 사용자 위임 SAS 토큰은 Microsoft Entra 자격 증명으로 보호됩니다. SAS 토큰은 Azure 스토리지 계정의 리소스에 대한 안전한 위임된 액세스를 제공합니다.

Screenshot of a storage url with SAS token appended.

관리 ID는 HTTP 요청에 SAS 토큰을 포함할 필요 없이 스토리지 데이터에 대한 액세스 권한을 부여하는 대체 방법을 제공합니다. 문서 번역에 대한 관리 ID를 참조하세요.

  • 관리 ID를 사용하여 사용자 고유의 애플리케이션을 포함하여 Microsoft Entra 인증을 지원하는 모든 리소스에 대한 액세스 권한을 부여할 수 있습니다.
  • 관리 ID 사용은 SAS(공유 액세스 서명 토큰)를 원본 및 대상 URL에 포함해야 하는 요구 사항을 대체합니다.
  • Azure에서 관리 ID를 사용하는 데 추가되는 비용은 없습니다.

높은 수준에서 SAS 토큰의 작동 방식은 다음과 같습니다.

  • 애플리케이션은 REST API 요청의 일부로 AZURE Storage에 SAS 토큰을 제출합니다.

  • 스토리지 서비스는 SAS가 유효한지 확인합니다. 이 경우 요청에 권한이 부여됩니다.

  • SAS 토큰이 잘못된 것으로 간주되는 경우 요청이 거부됩니다. 이 경우 오류 코드 403(사용할 수 없음)이 반환됩니다.

Azure Blob Storage는 세 가지 종류의 리소스를 제공합니다.

  • 스토리지 계정은 데이터에 대해 Azure에서 고유의 네임스페이스를 제공합니다.
  • 데이터 스토리지 컨테이너는 스토리지 계정에 있으며 Blob 집합(파일, 텍스트 또는 이미지)을 구성합니다.
  • Blob은 컨테이너에 있으며 텍스트 및 파일, 텍스트 및 이미지와 같은 이진 데이터를 저장합니다.

Important

  • SAS 토큰은 스토리지 리소스에 대한 권한을 부여하는 데 사용되며 계정 키와 동일한 방식으로 보호되어야 합니다.

  • SAS 토큰을 사용하는 작업은 HTTPS 연결을 통해서만 수행되어야 하며 SAS URI는 HTTPS와 같은 보안 연결에서만 배포되어야 합니다.

필수 조건

시작하려면 다음 리소스가 필요합니다.

  • 활성 Azure 계정. 계정이 없는 경우 무료 계정에 만들 수 있습니다.

  • Translator 리소스.

  • 표준 성능Azure Blob Storage 계정. 또한 스토리지 계정 내에서 파일을 저장하고 구성하는 컨테이너를 만들어야 합니다. 스토리지 컨테이너를 사용하여 Azure 스토리지 계정을 만드는 방법을 모르는 경우 다음 빠른 시작을 따릅니다.

    • 스토리지 계정 만들기 스토리지 계정을 만들 때 인스턴스 세부 사항>성능 필드에서 표준 성능을 선택합니다.
    • 컨테이너를 만듭니다. 컨테이너를 만드는 경우 새 컨테이너 창에서 퍼블릭 액세스 수준컨테이너(컨테이너 및 파일에 대한 익명 읽기 액세스)로 설정합니다.

Azure Portal에서 SAS 토큰 만들기

Azure Portal로 이동하여 다음과 같이 컨테이너 또는 특정 파일로 이동하고 다음 단계를 계속합니다.

컨테이너에 대한 SAS 토큰 만들기 특정 파일에 대한 SAS 토큰 만들기
내 스토리지 계정컨테이너내 컨테이너 내 스토리지 계정컨테이너내 컨테이너내 파일
  1. 컨테이너 또는 파일을 마우스 오른쪽 단추로 클릭하고 드롭다운 메뉴에서 SAS 생성을 선택합니다.

  2. 서명 방법사용자 위임 키를 선택합니다.

  3. 적절한 확인란을 선택하거나 선택 취소하여 권한을 정의합니다.

    • 원본 컨테이너 또는 파일은 읽기목록 액세스를 지정해야 합니다.

    • 대상 컨테이너 또는 파일은 쓰기목록 액세스를 지정해야 합니다.

  4. 서명된 키 시작만료 시간을 지정합니다.

    • SAS(공유 액세스 서명)를 만들 때 기본 기간은 48시간입니다. 48시간이 지나면 새 토큰을 만들어야 합니다.
    • 번역기 Service 작업에 스토리지 계정을 사용하는 시간 동안 더 긴 기간을 설정하는 것이 좋습니다.
    • 만료 시간 값은 계정 키 또는 사용자 위임 키 서명 방법을 사용하는지 여부에 따라 결정됩니다.
      • 계정 키: 최대 시간 제한은 부과되지 않지만, 간격을 제한하고 타협을 최소화하도록 만료 정책을 구성하는 것이 좋습니다. 공유 액세스 서명에 대한 만료 정책을 구성합니다.
      • 사용자 위임 키: 만료 시간 값은 SAS 토큰 생성 스크립트 후 최대 7일입니다. 사용자 위임 키가 만료된 후에는 SAS가 유효하지 않으므로 만료 시간이 7일보다 긴 SAS는 여전히 7일 동안만 유효합니다. 자세한 내용은 Microsoft Entra 자격 증명을 사용하여 SAS를 보호하세요.
  5. 허용되는 IP 주소 필드는 선택 사항으로 요청을 수락할 IP 주소 또는 IP 주소 범위를 지정합니다. 요청 IP 주소가 SAS 토큰에 지정된 IP 주소 또는 주소 범위와 일치하지 않으면 권한 부여가 실패합니다. IP 주소 또는 IP 주소 범위는 프라이빗이 아닌 공용 IP여야 합니다. 자세한 내용은, IP 주소 또는 IP 범위 지정을 참조하세요.

  6. 허용되는 프로토콜 필드는 선택 사항으로 SAS로 만든 요청에 대해 허용되는 프로토콜을 지정합니다. 기본값은 HTTPS입니다.

  7. 검토 후 SAS 토큰 및 URL 생성을 선택합니다.

  8. Blob SAS 토큰 쿼리 문자열 및 Blob SAS URL이 창의 아래쪽 영역에 표시됩니다.

  9. Blob SAS 토큰 및 URL 값을 복사하여 안전한 위치에 붙여넣습니다. 이는 한 번만 표시되며 창을 닫은 후에는 검색할 수 없습니다.

  10. SAS URL을 구성하려면 스토리지 서비스의 URL에 SAS 토큰(URI)을 추가합니다.

Azure Storage Explorer를 사용하여 SAS 토큰 만들기

Azure Storage Explorer는 데스크톱에서 Azure 클라우드 스토리지 리소스를 쉽게 관리할 수 있는 무료 독립 실행형 앱입니다.

  1. 로컬 컴퓨터에서 Azure Storage Explorer 앱을 열고 연결된 스토리지 계정으로 이동합니다.

  2. 스토리지 계정 노드를 확장하고 BLOB 컨테이너를 선택합니다.

  3. Blob 컨테이너 노드를 확장하고 스토리지 컨테이너 노드를 마우스 오른쪽 단추로 클릭하여 옵션 메뉴를 표시합니다.

  4. 옵션 메뉴에서 공유 액세스 서명 가져오기...를 선택합니다.

  5. 공유 액세스 서명 창에서 다음을 선택합니다.

    • 액세스 정책(기본값은 없음)을 선택합니다.
    • 서명된 키 시작만료 날짜와 시간을 지정합니다. 생성된 후에는 SAS를 철회할 수 없으므로 짧은 수명이 권장됩니다.
    • 시작 및 만료 날짜와 시간에 대한 표준 시간대(기본값은 로컬)를 선택합니다.
    • 적절한 확인란을 선택하거나 선택 취소하여 컨테이너 권한을 정의합니다.
    • 검토하고 만들기를 선택합니다.
  6. 컨테이너의 컨테이너 이름, URI 및 쿼리 문자열포함된 새 창이 나타납니다.

  7. 컨테이너, URI 및 쿼리 문자열 값을 복사하여 안전한 위치에 붙여넣습니다. 이는 한 번만 표시되며 창을 닫은 후에는 검색할 수 없습니다.

  8. SAS URL을 구성하려면 스토리지 서비스의 URL에 SAS 토큰(URI)을 추가합니다.

SAS URL을 사용하여 액세스 권한 부여

SAS URL에는 특수한 쿼리 매개 변수 세트가 포함되어 있습니다. 이러한 매개 변수는 클라이언트가 리소스에 액세스하는 방법을 나타냅니다.

다음 두 가지 방법으로 REST API 요청에 SAS URL을 포함할 수 있습니다.

  • SAS URL을 sourceURL 및 targetURL 값으로 사용합니다.

  • 기존 sourceURL 및 targetURL 값에 SAS 쿼리 문자열을 추가합니다.

샘플 REST API 요청은 다음과 같습니다.

{
    "inputs": [
        {
            "storageType": "File",
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en/source-english.docx?sv=2019-12-12&st=2021-01-26T18%3A30%3A20Z&se=2021-02-05T18%3A30%3A00Z&sr=c&sp=rl&sig=d7PZKyQsIeE6xb%2B1M4Yb56I%2FEEKoNIF65D%2Fs0IFsYcE%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-Spanish.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "es"
                },
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-German.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "de"
                }
            ]
        }
    ]
}

정말 간단하죠. 클라이언트가 데이터에 액세스하는 방법을 승인하는 SAS 토큰을 만드는 방법을 배웠습니다.

다음 단계