비디오: 프리티어 서비스부터 계정 보안까지 - 조아름 AWS 매니저 2024
타사 프록시를 처리 할 때 명백한 의문이 생깁니다. 이러한 도구가 사용자를 대신하여 작동하는 경우 Amazon Web Services (AWS)는 자신을 대신하여 해당 사용자가 사실 당신은 당신입니까? 즉, AWS가받은 명령이 귀하의 신원임을 확인하기 위해 신원을 어떻게 인증 할 수 있습니까?
사실 AWS API를 직접 사용하더라도 동일한 질문이 유효합니다. AWS는 귀하의 신원을 확인하여 귀하만을위한 명령을 실행하도록 보장 할 수 있습니까?
물론 한 가지 방법은 API 호출에 계정 사용자 이름과 비밀번호를 포함시키는 것입니다. 일부 클라우드 공급자는 이러한 접근 방식을 사용하지만 Amazon은 그렇지 않습니다.
사용자 이름과 비밀번호를 사용하는 대신 API 서비스 호출을 인증하는 두 개의 다른 식별자 인 액세스 키와 비밀 액세스 키를 사용합니다. 서비스 호출시이 키를 사용하여 사용자 이름과 암호 만 사용하는 것보다 훨씬 안전합니다.
어떻게 작동합니까? AWS 계정에 가입하면 액세스 키를 만들고 비밀 액세스 키를받을 수 있습니다. 각각은 긴 문자열의 무작위 문자이고 비밀 액세스 키는 둘 중 더 긴 문자입니다. 비밀 액세스 키를 다운로드 할 때는 안전한 서비스 호출을 구현하는 것이 핵심이므로 (미안 - 나쁜 말장난) 매우 안전한 곳에 저장해야합니다.
이렇게하면, 당신과 아마존 모두 액세스 키와 비밀 액세스 키의 복사본을 갖게됩니다. 비밀 액세스 키의 복사본을 유지하는 것은 귀하와 AWS간에주고받는 정보를 암호화하는 데 사용되며 비밀 액세스 키가없는 경우 AWS에서 서비스 호출을 실행할 수 없으므로 중요합니다.
두 키가 사용되는 방식은 다소 복잡하지만 개념적으로 단순합니다.
기본적으로 수행하려는 모든 서비스 호출에 대해 사용자 (또는 사용자를 대신하여 작동하는 도구)가 다음을 수행합니다.
-
서비스 호출 페이로드를 만듭니다.
AWS로 보내야하는 데이터입니다. S3에 저장하려는 객체이거나 실행하려는 이미지의 이미지 식별자 일 수 있습니다. (페이로드에는 다른 정보도 첨부 할 것이지만 서비스 호출의 세부 사항에 따라 다르기 때문에 여기에 나열되지 않습니다. 한 데이터는 현재 시간입니다.)
-
페이로드 암호화 비밀 액세스 키를 사용합니다.
이렇게하면 아무도 페이로드를 검사 할 수 없으며 그 내용을 발견 할 수 없습니다.
-
암호화 된 페이로드에 비밀 액세스 키를 추가하고 비밀 액세스 키를 사용하여 디지털 서명 프로세스를 수행하여 암호화 된 페이로드에 디지털 서명합니다.
비밀 액세스 키는 일반적인 사용자 비밀번호보다 길고 무작위입니다. 긴 비밀 액세스 키는 일반 사용자 암호로 수행 된 경우보다 더 안전하게 수행되는 암호화를 수행합니다.
-
총 암호화 된 페이로드를 액세스 키와 함께 서비스 호출을 통해 AWS로 보냅니다.
Amazon은 액세스 키를 사용하여 페이로드를 해독하는 데 사용하는 비밀 액세스 키를 조회합니다. 해독 된 페이로드가 실행 가능한 읽을 수있는 텍스트를 나타내는 경우 AWS는 서비스 호출을 실행합니다. 그렇지 않으면 서비스 호출에 문제가 있거나 (아마도 악의적 인 행위자가 호출 했음) 서비스 호출을 실행하지 않는다고 결론 내립니다.
AWS는 방금 설명한 암호화 외에도 서비스 호출의 정당성을 보장하기 위해 두 가지 다른 방법을 사용합니다.
-
첫 번째는 서비스 호출 페이로드에 포함 된 날짜 정보를 기반으로합니다. 서비스 호출의 생성과 관련된 시간이 적절한 지의 여부; 서비스 요청의 날짜가 현재 날짜보다 훨씬 빠르거나 늦은 경우 즉, AWS는 합법적 인 서비스 요청이 아니라고 판단하고이를 폐기합니다.
-
두 번째 추가 보안 조치에는 페이로드에 대해 계산 한 체크섬이 포함됩니다. (체크섬 은 메시지 내용을 나타내는 숫자입니다.) AWS는 페이로드에 대한 체크섬을 계산합니다. 체크섬이 자신의 것과 일치하지 않으면 서비스 호출을 허용하지 않고 실행하지 않습니다. 이 체크섬 접근법은 아무도 메시지 내용을 변조하지 않으며 악의적 인 행위자가 합법적 인 서비스 호출을 가로 채고 용납 할 수없는 동작을 수행하도록 변경하는 것을 방지합니다. 누군가가 메시지를 변조하면 AWS가 체크섬을 계산할 때 해당 체크섬이 더 이상 메시지에 포함 된 것과 일치하지 않으며 AWS는 서비스 호출을 거부합니다. 대부분의 AWS 사용자와 마찬가지로 프록시 메소드를 사용하여 AWS와 상호 작용하는 경우 (AWS 관리 콘솔, 언어 라이브러리 또는 타사 도구) 프록시에 액세스 키와 비밀 액세스 키를 제공해야합니다. 프록시가 사용자 대신 AWS 서비스 호출을 실행하면 호출에 액세스 키가 포함되고 비밀 액세스 키를 사용하여 페이로드 암호화를 수행합니다.
AWS에서 이러한 키가 수행하는 중요한 역할 때문에 신뢰할 수있는 엔터티와 만
공유해야합니다. 새로운 타사 도구를 사용해보고 싶지만 회사에 대해 잘 모르는 경우 프로덕션 AWS 계정 자격 증명을 사용하는 대신 평가판에 AWS 테스트 계정을 설정하십시오.
그런 식으로 도구를 사용하지 않기로 결정한 경우, 테스트 AWS 계정을 삭제하고 테스트 AWS 계정을 종료하고 주요 프로덕션 계정의 잠재적 인 보안 취약성에 대해 신경 쓰지 않아도됩니다. 물론 새로운 액세스 키와 비밀 액세스 키를 만들 수 있지만 테스트를 위해 프로덕션 키를 사용한 다음 키를 변경하면 많은 작업이 필요합니다. 기존 키를 참조하는 모든 장소를 업데이트해야하기 때문입니다. 다른 많은 AWS 사용자와 마찬가지로 많은 도구와 라이브러리를 사용하고 키를 업데이트하기 위해 다시 돌아가는 것이 쉽지 않습니다. 새로운 도구를 테스트하기 위해 비 생산 계정을 사용하는 것이 좋습니다.