EC2 인스턴스가 다른 당사자에 의해 종료되거나 차단되도록 허용

EC2 인스턴스가 다른 당사자에 의해 종료되거나 차단되도록 허용

저는 다른 사람과 함께 프로젝트를 진행하고 있습니다. 그 사람을 Bob이라고 부르세요.

Amazon EC2 인스턴스에서 독점 소프트웨어를 실행하고 싶습니다. 이 소프트웨어는 네트워크 패킷(HTTP 요청)을 외부 서버로 보냅니다.

나는 Bob이 이 소프트웨어를 사용하는 것을 원하지 않습니다. 그러나 나는 Bob이 앞으로 내가 네트워크 패킷을 보내는 것을 막을 수 없는 방식으로 Bob이 나를 막을 수 있기를 원합니다.

어떻게 될지 잘 모르겠습니다. 어쩌면 Bob에게 인스턴스를 종료할 수 있는 권한을 부여하거나 패킷이 나가는 것을 중지할 수 있는 권한을 부여하는 것일 수도 있습니다.

최소한의 추가 지연 시간으로 이를 수행할 수 있는 방법에 대한 아이디어를 듣고 싶습니다(예를 들어 Bob이 소유한 별도의 EC2 인스턴스를 통해 패킷을 라우팅하는 것은 너무 느립니다). 감사해요!

답변1

인스턴스를 보고 해당 인스턴스를 시작/중지할 수 있을 만큼만 매우 제한된 권한만 부여하는 첨부된 정책을 사용하여 Bob에게 IAM 사용자를 생성합니다. 정책의 핵심은 이와 같을 가능성이 높지만 이를 테스트/조정해야 합니다.

{
  "Version": "2012-10-17",
  "Statement": [
      {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "ec2:Describe*"
        ],
        "Resource": "*"
    },
    {
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
        ],
        "Resource": "arn:aws:ec2:::instance/i-012345"
    }
  ]
}

Bob에게는 더 많은 권한이 필요할 수 있지만 이 작업을 시도하면 해당 권한을 발견하게 될 것입니다. 아마도 Bob을 그룹에 넣고 사용자에게 직접 할당하기보다는 그룹에 권한을 할당할 것입니다.

답변2

귀하가 계정의 소유자인 한 Bob이 할 수 있는 일과 할 수 없는 일을 통제할 수 있지만 자발적으로만 제한할 수 있습니다. Bob이 계정의 소유자라면 그가 원하는 대로 행동하는 것을 막을 수 없습니다. 귀하의 경우에는 두 사람 모두에게 제한을 두기를 원합니다. 이 문제를 해결하는 한 가지 방법은 신뢰할 수 있는 제3자가 계정을 열어 두 사람 모두에 대한 권한을 설정하도록 하는 것입니다.

답변3

또 다른 아이디어는 다음과 같습니다.

작동하려면 "라이센스 키"가 필요한 방식으로 소프트웨어를 작성하십시오. 소프트웨어는 암호화되거나 키를 사용할 수 없으면 실행할 수 없는 다른 유사한 특성을 가질 수 있습니다. 키는 귀하가 제어하는 ​​서버에 저장됩니다.

Bob은 자신이 제어하는 ​​서버를 가지고 있지만 그 서버의 소프트웨어를 실행하려면 키가 필요합니다. Bob은 원하는 대로 서버를 종료할 수 있지만 귀하가 제어하는 ​​키 없이는 소프트웨어를 훔칠 수 없습니다.

소프트웨어 키는 완벽하지 않습니다. 소프트웨어를 리버스 엔지니어링하는 것이 가능합니다. 하지만 그렇게 하려면 시간이 너무 많이 걸리거나 비용이 많이 들 수 있어야 합니다.

이는 모든 주요 소프트웨어 제조업체가 소프트웨어를 제어하기 위해 사용하는 것과 동일한 아이디어입니다. MS Windows가 완벽한 예입니다.

관련 정보