Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Firebase ML Apple 앱의 클라우드 자격 증명 보호

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Apple 앱이 Firebase ML의 클라우드 API 중 하나를 사용하는 경우 프로덕션 환경에서 앱을 시작하기 전에 승인되지 않은 API 액세스를 방지하기 위해 몇 가지 추가 단계를 수행해야 합니다.

1. 기존 API 키의 범위 축소

먼저 Cloud Vision API에 대한 액세스를 허용하지 않도록 기존 API 키를 구성합니다.

  1. Google Cloud Console의 사용자 인증 정보 페이지를 엽니다. 메시지가 표시되면 프로젝트를 선택합니다.

  2. 목록의 각 기존 API 키에 대해 편집 보기를 엽니다.

  3. API 제한 섹션에서 키 제한 을 선택한 다음 API 키에 액세스 권한을 부여하려는 모든 API를 목록에 추가합니다. Cloud Vision API를 포함 하지 않도록 합니다.

    API 키의 API 제한 을 구성할 때 키가 액세스할 수 있는 API를 명시적으로 선언하는 것입니다. 기본적으로 API 제한 섹션에 키를 제한하지 않음 이 선택되어 있으면 API 키를 사용하여 프로젝트에 대해 활성화된 모든 API에 액세스할 수 있습니다.

이제 기존 API 키는 클라우드 ML 서비스에 대한 액세스 권한을 부여하지 않지만 각 키는 API 제한 목록에 추가한 모든 API에 대해 계속 작동합니다.

향후 추가 API를 활성화하는 경우 해당 API 키에 대한 API 제한 목록에 추가해야 합니다.

2. Firebase ML과 함께 사용할 새 API 키 생성

다음으로 Cloud Vision API에 대한 호출만 허용하는 Firebase ML용 새 API 키를 만듭니다.

  1. 자격 증명 페이지로 돌아갑니다. Firebase 프로젝트가 아직 선택되어 있는지 확인하세요.

  2. 자격 증명 만들기 > API 키를 클릭합니다. 새 API 키를 기록한 다음 키 제한 을 클릭합니다.

  3. API 제한 섹션에서 키 제한 을 선택한 다음 Cloud Vision API 목록에 추가합니다.

이 API 키는 Cloud Vision API에만 액세스 권한을 부여하며 Firebase ML에서 클라우드 기반 모델에 액세스하는 데 사용할 수 있습니다.

손상된 키의 결과를 완화하려면 Cloud Vision API의 사용자당 할당량을 기본 설정에서 줄여야 합니다. 이렇게 하려면:

  1. Google Cloud Console의 Cloud Vision API 할당량 페이지를 엽니다. 메시지가 표시되면 프로젝트를 선택합니다.

  2. 요청 섹션에서 사용자당 분당 요청 할당량을 앱에 적합한 값으로 설정합니다. 예를 들어 앱에서 텍스트를 다시 가져오기 위해 문서 사진을 업로드하는 경우 사용자가 몇 초에 한 번 이상 업로드할 가능성이 낮으므로 30-40의 할당량이 안전할 것입니다.

    이 컨텍스트에서 "사용자당 요청"은 단일 IP 주소의 요청을 나타냅니다. NAT 뒤에서 여러 사용자가 동시에 앱을 사용할 것으로 예상되는 경우 이를 고려해야 할 수 있습니다.

4. Firebase ML API 키를 사용하여 Cloud API 호출

마지막으로 앱에서 새 API 키를 사용하도록 Firebase ML을 구성합니다.

Firebase ML API 키는 Cloud Vision API에 대한 인증되지 않은 액세스를 허용하므로 승인되지 않은 사용 및 결제 계정 청구를 방지하려면 키를 기밀로 유지하는 것이 중요합니다. 그렇게 하려면 앱 바이너리에 API 키를 포함하지 않아야 합니다. 대신 앱 런타임에 알려진 정상 사용자가 로그인했는지 확인한 다음에만 서버에서 API 키를 검색합니다.

이러한 관행을 준수하더라도 API 키가 손상될 수 있습니다. 위에서 설명한 대로 API의 사용자별 할당량을 줄이고, 키 순환 정책을 구현하고, 다양한 사용자 그룹에 다른 키를 발급하는 등 키 손상의 결과를 완화하는 데 도움이 되는 조치를 취해야 합니다.

앱이 API 키를 안전하게 획득한 후 Firebase ML Cloud API를 호출하려면 키를 지정합니다.

빠른

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

오브젝티브-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

또한 API 키 보안 의 일반적인 조언을 따라야 합니다.

다음 단계

다른 Firebase 기능을 사용할 때 앱을 실행하도록 준비하는 방법에 대한 정보는 실행 체크리스트 를 참조하세요.