インスタンスのアクセスとセキュリティーの設定

インスタンスのアクセスとセキュリティーの設定

仮想マシンの起動時、インスタンスに SSH アクセスできるようにするための、キーペア を注入できます。これを動作させるために、イメージに cloud-init パッケージをインストールしておく必要があります。

各プロジェクトに少なくとも 1 つのキーペアを作成できます。そのプロジェクトに属する複数のインスタンスに対してそのキーペアを使用できます。外部ツールを用いてキーペアを生成した場合、OpenStack にインポートできます。

注釈

プロジェクトではなく、ユーザ個人に属したキーペア。キーペアを複数のユーザーにまたがってシェアするためには、各ユーザーでそのキーペアのインポートが必要です。

イメージが固定の root パスワードまたは固定のキーセットを使用する場合、どちらも推奨されませんが、インスタンスを起動するためにキーペアを提供する必要がありません。

セキュリティーグループ は、インスタンスへアクセスが可能なトラフィックの種別を制限するために使用するネットワークのアクセスルールを名前を付けてまとめたものです。インスタンスを起動して、1 つまたは複数のセキュリティーグループをインスタンスに割り当てることができます。セキュリティーグループを作成しない場合、新しいインスタンスには明示的に別のセキュリティーグループを指定しない限り、自動的に Default のセキュリティーグループが割り当てられます。

セキュリティーグループごとに割り当てた ルール は、グループ内のインスタンスへのトラフィックを制御します。デフォルトでは、ルールと合致しない受信トラフィックは、拒否されます。セキュリティーグループへルールを追加することも、セキュリティーグループからルールを削除することも可能です。デフォルトのルールやその他のセキュリティーグループのルールを変更することができます。

セキュリティーグループのルールを変更して、別のポートやプロトコルからインスタンスにアクセスすることができます。例えば、SSH 経由でのインスタンスへのアクセス、ping、UDP トラフィックの許可 (例: インスタンス上で実行中の DNS) などができるようにルールを変更することができます。ルールについては以下のパラメーターを指定します。

  • トラフィックソース。クラウドの IP アドレスから、他のグループメンバーから、あるいは全 IP アドレスからインスタンスへのトラフィックを可能にします。
  • プロトコル。SSH には TCP、ping には ICMP、あるいは UDP を選択します。
  • 仮想マシンでの宛て先ポート番号。ポートの範囲を定義します。ポート 1 つのみを開くには、同じ値を 2 回入力します。ICMP はポートに対応していないため、許可する ICMP トラフィックのコードおよび種別を定義する値を代わりに入力します。

ルールは、作成または変更後すぐに自動的に有効になります。

注釈

デフォルトのセキュリティーグループを使用するインスタンスは、デフォルトでクラウド外の IP アドレスからアクセスできません。これらの IP アドレスがインスタンスにアクセスしたければ、デフォルトのセキュリティーグループのルールを編集する必要があります。また、セキュリティーグループは自動的にインスタンスからの DHCP 応答を破棄します。

また、実行中のインスタンスに Floating IP アドレスを割り当て、クラウド外からアクセスできるようにすることも可能です。IP アドレスの管理 を参照してください。

キーペアの追加

キーペアの生成や既存の公開鍵のアップロードが可能です。

  1. キーペアを生成するために、以下のコマンドを実行します。

    $ openstack keypair create KEY_NAME > MY_KEY.pem
    

    このコマンドは、指定した KEY_NAME という名前のキーペアを生成し、秘密鍵を .pem ファイルに書き込み、公開鍵を Nova データベースに登録します。

  2. あなただけが読み書きできるよう、 .pem ファイルのパーミッションを設定するために、以下のコマンドを実行します。

    $ chmod 600 MY_KEY.pem
    

キーペアのインポート

  1. すでにキーペアを生成し、公開鍵が ~/.ssh/id_rsa.pub にある場合、以下のコマンドでこの公開鍵をアップロードします。

    $ openstack keypair create --public-key ~/.ssh/id_rsa.pub KEY_NAME
    

    このコマンドは、Nova データベースに公開鍵を登録して、キーペアの名前を指定した KEY_NAME にします。

  2. キーペアが正常にインポートされたことを確認するために、以下のとおりキーペアを一覧表示します。

    $ openstack keypair list
    

セキュリティーグループの作成と管理

  1. 現在のプロジェクトのセキュリティーグループと説明を一覧表示するために、以下のコマンドを入力します。

    $ openstack security group list
    
  2. 指定された名前と説明を持つセキュリティーグループを作成するために、以下のコマンドを入力します。

    $ openstack security group create SECURITY_GROUP_NAME --description GROUP_DESCRIPTION
    
  3. 指定されたグループを削除するために、以下のコマンドを入力します。

    $ openstack security group delete SECURITY_GROUP_NAME
    

注釈

プロジェクトの Default のセキュリティーグループは削除できません。また、実行中のインスタンスに割り当てられているセキュリティーグループも削除できません。

セキュリティーグループのルールの作成と管理

openstack security group rule コマンドを用いてセキュリティーグループのルールを編集します。開始する前に、OpenStack RC ファイルを読み込みます。詳細は OpenStack RC ファイルを用いた環境変数の設定 を参照してください。

  1. セキュリティーグループのルールを一覧表示するために、以下のコマンドを実行します。

    $ openstack security group rule list SECURITY_GROUP_NAME
    
  2. インスタンスへの SSH 接続を許可するために、以下のオプションのどれかを選択します。

    • CIDR 表記で IP サブネット 0.0.0.0/0 として指定して、すべての IP アドレスからのアクセスを許可します。

      $ openstack security group rule create SECURITY_GROUP_NAME \
            --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
      
    • 他のセキュリティーグループからの IP アドレス (ソースグループ) のみが指定したポートにアクセスできるようにします。

      $ openstack security group rule create SECURITY_GROUP_NAME \
            --protocol tcp --dst-port 22:22 --remote-group SOURCE_GROUP_NAME
      
  3. インスタンスへの ping アクセスを許可するには、以下のオプションのどれかを選択します。

    • CIDR 表記で IP サブネット 0.0.0.0/0 として指定して、すべての IP アドレスからの ping を許可します。

      $ openstack security group rule create --protocol icmp \
        SECURITY_GROUP_NAME
      

      これにより、すべてのコードとすべての種類の ICMP 通信が許可されます。

    • 他のセキュリティーグループ (ソースグループ) のメンバーのみがインスタンスに ping できるようにします。

      $ openstack security group rule create --protocol icmp \
        --remote-group SOURCE_GROUP_NAME SECURITY_GROUP
      
  4. 仮想マシンで実行する DNS サーバーにアクセスするなど、UDP ポート経由でのアクセスを許可するには、以下のオプションの 1 つを選択します。

    • CIDR 表記で IP サブネット 0.0.0.0/0 として指定して、すべての IP アドレスからの UDP アクセスを許可します。

      $ openstack security group rule create --protocol udp \
        --dst-port 53:53 SECURITY_GROUP
      
    • 他のセキュリティーグループからの IP アドレス (ソースグループ) のみが指定したポートにアクセスできるようにします。

      $ openstack security group rule create --protocol udp \
        --dst-port 53:53 --remote-group SOURCE_GROUP_NAME SECURITY_GROUP
      

セキュリティーグループのルールの削除

セキュリティーグループのルールを削除するには、ルールの ID を指定します。

$ openstack security group rule delete RULE_ID
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.