как добавить группу безопасности в работающий экземпляр ec2?

<p>у меня запущен экземпляр amazon ec2, и я хочу добавить в него другую группу безопасности, а затем удалить текущую группу безопасности из этого экземпляра. это возможно?</p>

<p><strong> обновление </strong> 2015-02-27:</p><p>теперь это возможно, см. <a href="https://serverfault.com/a/565852">ответ ниже</a> .</p><p>старый ответ:</p><p> <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalid=1145#13">часто задаваемые вопросы amazon</a> говорит, что невозможно определить группу безопасности нигде, кроме времени запуска.</p>

<p><strong>обновление</strong>: по состоянию на январь 2014 года теперь вы можете изменять группы безопасности для запуска экземпляров aws ec2.</p><h2>консоль aws</h2><p>просто щелкните правой кнопкой мыши экземпляр и выберите <code>change security group</code></p><p><img src="https://i.stack.imgur.com/8gwgv.png" alt="change security group"></p><p>при необходимости добавьте/удалите группы безопасности и нажмите <code>assign security groups</code> когда закончите</p><p><img src="https://i.stack.imgur.com/btvit.png" alt="select security groups"></p><hr><h2>командная строка ec2</h2><p>используйте следующую команду:</p><pre><code>ec2-modify-instance-attribute <instance-id> --group-id <group-id> </code></pre><h2>командная строка aws</h2><p>используйте следующую команду:</p><pre><code>aws ec2 modify-instance-attribute --instance-id i-12345 --groups sg-12345 sg-67890 </code></pre><p>обратите внимание, вы должны указать все группы безопасности, с которыми вы хотите связать экземпляр.</p>

<p>теперь это возможно сделать. нажмите на меню действий и изменить группы безопасности - выберите группы безопасности, которые вы хотите использовать.</p>

<ol> <li>создайте образ ami из экземпляра, который вы хотите переместить в другую группу безопасности.</li> <li>запустите новый экземпляр, используя этот образ, теперь мы можем назначить этот новый экземпляр другой группе безопасности.</li> <li>откажитесь от предыдущего экземпляра.</li> </ol><p>это требует простоя на вашем экземпляре. там могут быть некоторые другие опции, доступные с помощью api.</p>

<p>как сказал towo, вы не можете изменить группу безопасности экземпляра в любом месте, кроме времени запуска.</p><p><em> если </em> вы не используете vpc, где группы безопасности отличаются от групп безопасности ec2.</p><p>на этой странице описаны различия между группами безопасности ec2 и vpc.</p><p> <a href="http://docs.amazonwebservices.com/amazonvpc/latest/userguide/vpc\_securitygroups.html">http://docs.amazonwebservices.com/amazonvpc/latest/userguide/vpc\_securitygroups.html</a> </p><p>поэтому, если вам требуется дополнительная функциональность групп vpc (изменение групп, управление входящим/входящим трафиком и т.д.), вам может потребоваться дополнительная функциональность, предоставляемая vpc.</p>

<p>по состоянию на 24 ноября 2016 г. ответ @hanxue является правильным, но не полным. в aws есть <strong> два типа экземпляров </strong>: экземпляры внутри частного облака, называемые <strong> экземплярами vpc </strong> и <strong> публичные экземпляры </strong>, называемые ec2 classic. вы можете изменять только группы безопасности экземпляров vpc, но не ec2-classic. скриншот официальной документации aws вы хотели бы видеть. <a href="http://docs.aws.amazon.com/amazonvpc/latest/userguide/vpc\_securitygroups.html">документы, которые вы хотели бы видеть</a> </p><p> <a href="https://i.stack.imgur.com/7xgxx.png"><img src="https://i.stack.imgur.com/7xgxx.png" alt="the differences from aws official documentation"></a> </p>

<p>если вы используете boto3, вам нужно вызвать <strong> modify\_attribute </strong> и передать список идентификаторов группы <strong> </strong></p><p> <a href="http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#ec2.instance.modify\_attribute">http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#ec2.instance.modify\_attribute</a> </p><pre><code>response = instance.modify\_attribute(groups=['string']) groups (list) -- [ec2-vpc] changes the security groups of the instance. you must specify at least one security group, even if it's just the default security group for the vpc. you must specify the security group id, not the security group name. </code></pre>