2010-02-10 9 views
10

개인 프로젝트에서 amazon 웹 서비스를 사용하고 있습니다. .NET 용 AWS SDK를 사용하고 있는데 사용하고 있지만 조금 혼란 스럽습니다.Amazon Web Services에서 비밀 키 비밀 유지하기

  1. 웹 서비스에 대한 액세스 (이 경우, SimpleDB의에서, 나는 그 질문에 정말 재료 생각하지 않습니다하지만)는 공개/개인 키 쌍을 통해 권한이 부여됩니다.

    AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey); 
    
  2. 이 클라이언트 응용 프로그램, 그래서 코드가 클라이언트에서 완전히 실행된다 : 클라이언트 개체를 만드는 데 사용 .NET API에 대한

  3. AWS SDK

    는 개인 키를 필요로한다.

  4. SimpleDB에 액세스하려면 클라이언트가 내 개인 키에 액세스해야한다고 제안합니다. 하지만 아마존은 반복적으로 내 개인 키가 내 통제를 떠나지 않아야한다고 강조했습니다.

이것은 내게 의미가 없으므로 나는 뭔가를 놓쳐 버린 것 같습니다.

아마존 웹 서비스에 대한 클라이언트 모델 응용 프로그램이 일반적으로 AWS SDK for .NET을 사용하는 모델이 아닌가요? 아니면 클라이언트 응용 프로그램이 완벽하게 합리적인 제품이 누락 되었습니까? 클라이언트를 인증하고 요청을 SimpleDB에 전달하는 자체 서비스를 만들지 않고도이 문제를 해결할 수있는 좋은 방법이 있습니까?

답변

7

원격 (AWS) 서비스에 앞서는 프록시를 구현할 필요가 없습니다. 클라이언트에 URL과 AWS에 연결할 때 사용할 헤더를 반환하는 간단하고 작은 인증 서비스를 구현하기 만하면됩니다. 인증 된 웹 서비스는 AWS 암호를 유지하고 클라이언트에 서명 된 요청 URL과 헤더 만 제공하고 반환 된 정보를 사용하여 실제 작업 호출을합니다.

이렇게하면 AWS 호출 중에 자신의 서버를 거치면서 대기 시간, 대역폭, 서버에 연결된 소켓, 장애 처리 복잡성 등을 줄이는 오버 헤드를 피할 수 있습니다. 클라이언트가 올바른 지시를받을 수 있도록

+0

답변에 감사드립니다. 주로 데스크톱 세계에서 작업하기 때문에 서명 된 URL과 헤더를 인증하고 제공 할 가능성은 내 마음에 들지 않았습니다. –

+0

이 경로를 사용하는 경우 .NET API를 계속 사용할 수 있습니까? –

+1

내 질문에 대한 대답은 "아니오"입니다. AWSSDKUtils.HMACSign 호출을 원격으로 코드를 수정해야합니다. –

관련 문제