2013-08-19 23 views
4

我使用橡膠部署到EC2(以下Railscast#347)。我剛纔跑「封口膠:create_staging」,並正在此錯誤:EC2:「屬於其他用戶的組可能未被授予對VPC安全組的權限。」

"Groups belonging to other users may not be granted permissions to VPC security groups." 

[email protected]:~/projects/usesthis☺ cap rubber:create_staging 
Respawning with 'bundle exec' 
    triggering load callbacks 
    * 2013-08-19 08:55:19 executing `rubber:init' 
    * 2013-08-19 08:55:21 executing `rubber:create_staging' 
Hostname to use for staging instance [production]: 
Roles to use for staging instance [apache,app,collectd,common,db:primary=true,elasticsearch,examples,graphite_server,graphite_web,graylog_elasticsearch,graylog_mongodb,graylog_server,graylog_web,haproxy,mongodb,monit,passenger,postgresql,postgresql_master,web,web_tools]: 
    * 2013-08-19 08:55:23 executing `rubber:create' 
    * Creating new security group: usesthis_production_default 
    * Creating new rule: {"source_group_name"=>"usesthis_production_default", "source_group_account"=>"9050-9101-9552"} 
/home/mike/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/excon-0.25.3/lib/excon/middlewares/expects.rb:6:in `response_call': InvalidParameterValue => Groups belonging to other users may not be granted permissions to VPC security groups. (Fog::Compute::AWS::Error) 

我的帳戶中有沒有什麼其他的,亞馬遜的違約和什麼橡膠創建。 VPC是:「usesthis_production_default」和「默認」。

這是我第一次接觸Rubber或EC2,所以這對我來說意義不大。任何人都可以將我指向正確的方向嗎?

+0

您是否擁有VPC安全組?您可以在AWS控制檯中的VPC,安全組中查看它們。 –

+0

我更新了任務。 VPC是亞馬遜似乎創建的「默認」,以及Rubber創建的「usesthis_production_default」。 – mikewilliamson

回答

6

由於您的安全組已經擁有默認安全組,因此您將無法將其從橡膠中更改,也無法將更改同步到該組。這發生在我身上,因爲在AWS上設置一個新賬戶後,我手動(沒有橡皮的幫助)創建了一個EC2實例。這樣做後,我自動爲我創建了一個默認安全組,並且我無法從此時開始對其進行更改。

因此 - 通過aws安全組控制檯,將SSH添加到傳入和傳出到默認安全組的規則中。接下來,在rubber.yml,註釋掉默認安全組:

security_groups: 
# default: 
# description: The default security group 
# rules: 
#  - source_group_name: default 
#  source_group_account: "#{cloud_providers.aws.account}" 
#  - protocol: tcp 
#  from_port: 22 
#  to_port: 22 
#  source_ips: [0.0.0.0/0] 

你create_staging下一次,系統會提示您是否從AWS刪除安全組 - 選擇無。您可以通過設置避免提示:

prompt_for_security_group_sync: true 

prompt_for_security_group_sync: false 

在rubber.yml

這是對我工作 - 不知道你原先嚐試做,但幫助那些正在嘗試解決問題並想用橡膠建立臨時環境的人,並且遇到此問題,請嘗試以上方法。