Amazon Web Services의 비밀 비밀을 유지합니다
-
19-09-2019 - |
문제
저는 개인 프로젝트에서 Amazon Web Services를 사용하여 놀고 있습니다. 나는 .NET를 위해 그들의 AWS SDK를 잡고 그것을 사용하고 있지만 조금 혼란 스럽습니다.
웹 서비스에 대한 액세스 (이 경우 SimpleDB, 실제로 질문에 대한 중요성은 없다고 생각합니다)는 개인/공개 키 쌍을 통해 승인됩니다.
클라이언트 객체를 작성하는 데 사용되는 .NET API 용 AWS SDK에는 개인 키가 필요합니다.
AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
이것은 클라이언트 응용 프로그램이므로 코드는 전적으로 클라이언트에서 실행됩니다.
고객이 단순에 액세스하려면 내 개인 키에 액세스해야한다고 제안합니다. 그러나 아마존은 반복적으로 그리고 강조 적으로 내 개인 키가 내 통제를 남기지 않아야한다고 말합니다.
이것은 나에게 의미가 없기 때문에 무언가를 놓치고 있다고 생각합니다.
클라이언트 측 응용 프로그램은 일반적으로 Amazon Web Services의 잘못된 모델, .NET에 AWS SDK를 사용하거나 클라이언트 애플리케이션을 완벽하게 합리적으로 만드는 무언가를 놓치고 있습니까? 내 자신의 프록시 서비스를 만들지 않고 고객을 인증하고 그들의 요청을 SimpleDB에 전달할 수있는 좋은 방법이 있습니까?
해결책
AWS (Remote) 서비스를 앞선 프록시를 구현할 필요는 없습니다. 고객에게 반환하는 간단하고 작고 인증 된 서비스를 구현합니다. AWS에 연락 할 때 사용할 URL 및 헤더. 인증 된 웹 서비스는 AWS를 비밀로 유지하고 서명 된 요청 URL 및 헤더 만 클라이언트에만 제공 한 다음 리턴 된 정보를 사용하여 실제 작업을 호출합니다.
이렇게하면 AWS가 자신의 서버를 통과 해야하는 AWS 호출 중에 오버 헤드를 피하거나, 대기 시간, 대역폭, 서버에 소켓을 묶고, 복잡성을 취급하는 것 등. 적절한 지침을 얻으십시오.