API 키를 사용하여 인증되지 않은 게스트의 애플리케이션 액세스 허용
애플리케이션에서 Amazon Location Service API를 호출할 때에는 일반적으로 API 호출 권한이 있는 인증된 사용자로서 이 호출을 수행합니다. 그러나 경우에 따라 애플리케이션의 모든 사용자를 인증하고 싶지는 않습니다. 예를 들어, 웹 사이트를 사용하는 모든 사람이 로그인 여부에 관계없이 비즈니스 위치를 보여주는 웹 애플리케이션을 사용할 수 있도록 하고 싶을 수 있습니다. 이 경우 한 가지 대안은 API 키를 사용하여 API를 호출하는 것입니다.
API 키는 사용자의 AWS 계정 특정 Amazon Location Service 리소스 및 해당 리소스에서 수행할 수 있는 특정 작업과 관련된 키 값입니다. 애플리케이션의 API 키를 사용하여 해당 리소스에 대해 Amazon Location API를 인증되지 않은 상태로 호출할 수 있습니다. 예를 들어, API 키를 맵 리소스인 MyMap 및 GetMap*
작업에 연결하는 경우, 해당 API 키를 사용하는 애플리케이션은 해당 리소스로 생성된 맵을 볼 수 있게 되며 계정의 다른 사용량과 마찬가지로 사용자 계정에 요금이 부과됩니다. 동일한 API 키는 맵 리소스를 변경하거나 업데이트할 권한을 부여하지 않으며 해당 리소스만 사용할 수 있습니다.
참고
API 키는 지도, 장소, 경로 리소스에만 사용할 수 있으며 이러한 리소스를 수정하거나 생성할 수 없습니다. 애플리케이션에서 인증되지 않은 사용자를 위해 다른 리소스 또는 작업에 액세스해야 하는 경우 Amazon Cognito를 사용하여 API 키와 함께 또는 API 키 대신 액세스를 제공할 수 있습니다. 자세한 내용은 Amazon Cognito를 사용하여 미인증 게스트의 애플리케이션 액세스 허용 단원을 참조하십시오.
API 키에는 하나 이상의 AWS 계정 리소스에 대한 액세스를 제공하는 일반 텍스트 값이 포함됩니다. 누군가 API 키를 복사해도 동일한 리소스에 액세스할 수 있습니다. 이를 방지하려면 키를 생성할 때 API 키를 사용할 수 있는 도메인을 지정할 수 있습니다. 이러한 도메인을 리퍼러라고 합니다. 필요한 경우 API 키의 만료 시간을 설정하여 단기 API 키를 생성할 수도 있습니다.
주제
Amazon Cognito와 비교한 API 키
API 키와 Amazon Cognito는 유사한 시나리오에서 비슷한 방식으로 사용되는데, 둘 중 하나를 다른 것보다 더 사용하는 이유는 무엇입니까? 다음 표는 이 둘 사이의 차이점 중 일부를 강조합니다.
-
API 키는 지도, 장소 및 경로 리소스와 특정 작업에만 사용할 수 있습니다. Amazon Cognito는 대부분의 Amazon Location Service API에 대한 액세스를 인증하는 데 사용할 수 있습니다.
-
API 키를 사용한 맵 요청의 성능은 일반적으로 Amazon Cognito를 사용하는 유사한 시나리오보다 빠릅니다. 인증이 간단하면 짧은 시간 내에 동일한 맵 타일을 다시 가져올 때 서비스 및 캐시된 요청으로의 왕복 횟수가 줄어듭니다.
-
Amazon Cognito를 사용하면 Amazon Cognito의 페더레이션 ID를 사용하여 자체 인증 프로세스를 사용하거나 여러 인증 방법을 결합할 수 있습니다. 자세한 내용은 Amazon Cognito 개발자 안내서의 페더레이션 ID 시작하기를 참조하세요.
API 키 생성
API 키를 생성하여 하나 이상의 사용자 AWS 계정 리소스에 연결할 수 있습니다.
Amazon Location Service 콘솔AWS CLI 또는 Amazon Location API를 사용하여 API 키를 생성할 수 있습니다.
API 키를 사용하여 Amazon Location API를 직접적으로 호출합니다.
API 키를 생성한 후 키 값을 사용하여 애플리케이션의 Amazon Location API를 호출할 수 있습니다.
API 키를 지원하는 API에는 API 키 값을 취하는 추가 파라미터가 있습니다. 예를 들어, GetPlace
API를 호출하는 경우 다음과 같이 키 파라미터를 입력할 수 있습니다.
GET /places/v0/indexes/
IndexName
/places/PlaceId
?key=KeyValue
이 값을 입력하면 평소처럼 AWS Sig v4로 API 호출을 인증할 필요가 없습니다.
JavaScript 개발자의 경우, Amazon Location JavaScript 인증 도우미을 사용하여 API 키로 API 작업을 인증하는 데 도움을 받을 수 있습니다.
모바일 개발자의 경우 다음 Amazon Location 모바일 인증 SDK를 사용할 수 있습니다.
AWS CLI 사용자의 경우, --key
파라미터를 사용할 때 Sig v4로 서명하지 않도록 --no-sign-request
파라미터도 사용해야 합니다.
참고
Amazon Location Service에 대한 직접 호출에 key
및 AWS Sig v4 서명을 모두 포함하는 경우 API 키만 사용됩니다.
API 키를 사용하여 맵 렌더링
API 키 값을 사용하여 MapLibre를 사용하여 애플리케이션에서 맵을 렌더링할 수 있습니다. 직접 호출하는 다른 Amazon Location API의 API 키를 사용하는 것과는 약간 다릅니다. MapLibre가 대신 호출하기 때문입니다.
다음 샘플 코드는 MapLibre GL JS 맵 컨트롤을 사용하여 API 키를 사용하여 간단한 웹 페이지에 맵을 렌더링하는 방법을 보여줍니다. 이 코드가 제대로 작동하도록 하려면 v1.public.your-api-key-value
, us-east-1
및 exampleMap
문자열을 AWS 계정와 일치하는 값으로 바꾸세요.
<!-- index.html --> <html> <head> <link href="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.css" rel="stylesheet" /> <style> body { margin: 0; } #map { height: 100vh; } </style> </head> <body> <!-- Map container --> <div id="map" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.js"></script> <script> const apiKey = "
v1.public.your-api-key-value
"; // API key const region = "us-east-1
"; // Region const mapName = "ExampleMap
"; // Map name // URL for style descriptor const styleUrl = `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=${apiKey}`; // Initialize the map const map = new maplibregl.Map({ container: "map", style: styleUrl, center: [-123.1187, 49.2819], zoom: 11, }); map.addControl(new maplibregl.NavigationControl(), "top-left"); </script> </body> </html>
API 키 수명 관리
무기한으로 작동하는 API 키를 생성할 수 있습니다. 하지만 임시 API 키를 생성하거나 정기적으로 API 키를 교체하거나 기존 API 키를 취소하려는 경우에는 API 키 만료를 사용할 수 있습니다.
새 API 키를 만들거나 기존 API 키를 업데이트할 때 해당 API 키의 만료 시간을 설정할 수 있습니다.
-
API 키가 만료 시간에 도달하면 키가 자동으로 비활성화됩니다. 비활성 키는 더 이상 맵 요청에 사용할 수 없습니다.
-
API 키를 비활성화한 후 90일이 지나면 삭제할 수 있습니다.
-
아직 삭제하지 않은 비활성 키가 있는 경우 만료 시간을 미래 시간으로 업데이트하여 복원할 수 있습니다.
-
영구 키를 만들려면 만료 시간을 제거하면 됩니다.
-
지난 7일 이내에 사용된 API 키를 비활성화하려고 하면 변경을 확인하라는 메시지가 표시됩니다. Amazon Location Service API 또는 AWS CLI을 사용하는 경우
ForceUpdate
파라미터를 true로 설정하지 않으면 오류가 발생합니다.