Permitir que a instância do EC2 seja desligada ou bloqueada por outra parte

Permitir que a instância do EC2 seja desligada ou bloqueada por outra parte

Estou trabalhando em um projeto com outra pessoa, chame-o de Bob.

Gostaria de executar um software proprietário em uma instância do Amazon EC2. Este software enviará pacotes de rede (solicitações HTTP) para um servidor externo.

Não quero que Bob consiga obter este software. No entanto, quero que Bob seja capaz de me impedir de enviar pacotes de rede de tal forma que eu não possa impedi-lo de fazer isso no futuro.

Não tenho certeza de como. Talvez dando a Bob de alguma forma o poder de encerrar a instância, talvez dando a ele a capacidade de impedir a saída dos pacotes, não sei.

Adoraria ouvir ideias sobre como isso pode ser feito com latência adicional mínima (rotear meus pacotes por meio de uma instância EC2 separada de propriedade de Bob seria muito lento, por exemplo). Obrigado!

Responder1

Crie para Bob um usuário IAM com uma política anexada que concede a ele direitos muito limitados, apenas o suficiente para visualizar instâncias e iniciar/interromper essa instância - não encerrá-la. O núcleo da política provavelmente será algo assim, mas você precisará testá-la/ajustá-la.

{
  "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"
    }
  ]
}

É provável que Bob precise de mais permissões, mas você as descobrirá ao tentar fazer isso. Provavelmente colocaria Bob em um grupo e atribuiria as permissões a um grupo, em vez de diretamente ao usuário.

Responder2

Enquanto você for o proprietário da conta, você controlará o que Bob pode ou não fazer, mas só poderá se restringir voluntariamente. Se Bob for o proprietário da conta, você não poderá impedi-lo de fazer o que quiser. No seu caso, você deseja impor restrições a ambos. Uma maneira de resolver isso é ter um terceiro confiável na conta e definir permissões para vocês dois.

Responder3

Aqui está outra ideia:

Escreva seu software de forma que exija uma “chave de licença” para funcionar. O software pode ser criptografado ou ter alguma outra característica semelhante, de modo que não possa ser executado a menos que a chave esteja disponível. A chave será armazenada em um servidor que você controla.

Bob tem um servidor que ele controla, mas o software nele precisa da sua chave para funcionar. Bob pode encerrar o servidor como quiser, mas não pode roubar seu software sem sua chave - que você controla.

As chaves de software não são infalíveis – é possível fazer engenharia reversa em seu software. mas você deve ser capaz de tornar isso muito demorado ou caro.

Esta é a mesma ideia que todos os principais fabricantes de software usam para controlar seus softwares. MS Windows é um exemplo perfeito.

informação relacionada