[Android/Kotlin] GCP API 키 유출 - local.properties에 API 키 숨기고 매니페스트에서 사용하기

SoyoungLee·2022년 8월 10일
0
post-thumbnail

💌 [Android/Kotlin] GCP API 키 유출 - local.properties에 API 키 숨기고 매니페스트에서 사용하기

안드로이드 프로젝트 구글 플레이 스토어에 출시 중 경고가 있었다.

GCP API 키 유출
Google Cloud Platform(GCP) API 키가 노출되어 있습니다.

구글을 비롯하여 네이버, 카카오 등 SDK를 사용할 때 API 키들이 주어진다.
이 값들을 코드상에서 하드코딩해두면 GitHub 등 노출 가능성이 있다.
이 중요한 값들은 .gitignore 파일을 통하여 숨기는 것이 좋다.

local.properties를 이용해 API 키를 숨기는 방법은 이전 포스팅을 참고.

코드부분에서 BuildConfig.변수명 을 이용해 local.properties 에 저장된 값들을 사용할 수 있다.
네이버 지도나 구글 지도 등은 Manifest 에 API 키 값들을 넣어줘야 한다.

💌 local.properties 값 매니페스트에서 사용하기

위 경고를 대응하기 위한 구글 지도 API 키를 local.properties 에 숨겨 매니페스트에서 사용하는 방법을 알아보자.

📌 local.properties 에 키 추가

# AndroidMainfest use
google_maps_key="GOOGLE_MAP_KEY"

📌 앱 수준의 build.gradle 에 추가

💜 Properties 사용

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def googleMapApiKey = properties.getProperty('google_maps_key')

💜 manifestPlaceholders 이용

  • Map 자료구조를 띄고 있으며 key: value 형식으로 변수를 선언할 수 있다.
android {
	defaultConfig {
    	...
        
	// AndroidManifest 에서 쓸수 있도록 지정
        manifestPlaceholders = [googleMapApiKey:googleMapApiKey, key: value]
        
        ... 
 	}       
}

📌 AndroidManifest 에서 사용하기

<manifest	...>
	<application	...>
			...
		<meta-data
            	android:name="com.google.android.geo.API_KEY"
            	android:value="${googleMapApiKey}" />
            
	</application>

</manifest>

참고 : https://developer.android.com/studio/build/manifest-build-variables?hl=ko
https://simsi6.tistory.com/39

profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻

0개의 댓글