2017-01-31 7 views
2

TLTR 사전 0.8 ACL 권한을 0.7.3으로 마이그레이션하는 방법은 무엇입니까?영사관 0.8 ACL 마이그레이션 - 마이그레이션 방법

현재 설정 현재 ACL 사용 영사관 0.7.3 스택을 실행 중입니다.

영사와 함께 ACL에는 마침내 서비스와 노드가 포함되어 노드/서비스 (영사)가 더 이상 익명 사용자에게 표시되지 않습니다. 이것은 내가 필요한 것입니다. 오늘 나는 새로운 ACL "pre 0.8"을 사용하려고했습니다. https://www.consul.io/docs/agent/options.html#acl_enforce_version_8

이렇게하면 내 노드가 더 이상 인증을받지 못하게됩니다 (인증이 문제가되는 경우).

"{acl_master_token":"<token>}" 

와 에이전트에 대한 토큰 :

나는 소문이 활성화 된 나는 acl_master_token를 구성, 영사 네트워크를 실행

"{acl_token":"<token>}" 

모든 에이전트가/사용으로 구성됩니다.

나는이 ACL의 기본값이 있습니다

{ 
"acl_datacenter": "stable", 
"acl_default_policy": "deny", 
"acl_down_policy": "deny" 
} 

내 영사의 설정은 다음과 같습니다

내가 부팅하면 어떻게됩니까
{ 
    "datacenter": "stable", 
    "data_dir": "/consul/data", 
    "ui": true, 
    "dns_config": { 
    "allow_stale": false 
    }, 
    "log_level": "INFO", 
    "node_name": "dwconsul", 
    "client_addr" : "0.0.0.0", 
    "server": true, 
    "bootstrap": true, 
    "acl_enforce_version_8": true 
} 

, 나는 사용하여 내 노드/서비스를 볼 수 없습니다 내 토큰을 전혀 사용하지 않아도 노드/에이전트는 마스터에 등록 할 수 없습니다.

질문 정확히 다음 얻기 위해 필요한 것은 :

  • 모든 에이전트가 모든 노드 모든 서비스를 볼 수있는 모든 KVS
  • 익명 아무것도하지 KV, 서비스 또는 노드 (0.8 가능합니다 이잖아)를 볼 수 없습니다

나는를 보았습니다. "ACL 변경이 영사 0.8에옵니다."하지만 내 머리를 감쌀 수 없었습니다. acl_token 대신 https://www.consul.io/docs/agent/options.html#acl_agent_master_token을 사용해야합니까?

도움 주셔서 감사합니다. 나는이 이주 경로에서이 유일한 관심사가되지는 않을 것이라고 생각합니다. 많은 사람들이 이에 관심을 가지고 있습니다. 당신은 그들 모두를 도울 것입니다.

답변

3

새로운 node 정책으로 인해 노드가 올바르게 등록되지 못하는 것으로 보입니다. 이 일을 해결해야합니다 node "" { policy = "write" } : 당신의 영사 서버에

  1. 이 같은 모든 노드에 쓸 수있는 정책이있는 acl_agent_token로 구성합니다.

  2. 영사관에서 서버와 유사한 서버로 구성하여 공개하거나 일부 허용 된 접두사에만 쓸 수있는보다 구체적인 정책이있는 토큰을 제공 할 수 있습니다.

참고 이것은 내부 등록 작업에 사용되는 acl_agent_token으로 설정됩니다. acl_agent_master_token은 Consul 서버에 문제가있는 경우/v1/agent API를 사용하기위한 종류의 긴급 토큰으로 사용되지만/v1/agent API에만 적용됩니다.

당신이 acl_token를 통해 상담원에게주는 토큰을 무엇에 당신이 같은 정책을 추가 할 것입니다, 그래서 "모든 노드와 모든 서비스와 모든 KVS를 볼 수있는 모든 에이전트는"당신이 노드 읽기 권한을 추가 할 것입니다 경우 :

node "" { policy = "read" } 
service "" { policy = "read" } 
key "" { policy = "read" } 

이렇게하면 에이전트의 클라이언트 인터페이스에 액세스 할 수있는 모든 사람이 이러한 모든 것을 읽을 수 있으므로 바인딩 대상에주의해야합니다 (대개 루프백 만). 또는 acl_token을 설정하지 말고 발신자가 각 요청과 함께 토큰을 전달하도록하십시오.

+0

감사합니다. 대리인은 노출되지 않으며 외교관/영사관 전문가와 같은 현지 도구 만 사용되므로 완벽하게 일치합니다. jons 형식의 규칙을 /consul/conf.d 폴더에 둘 수 있습니까? –

+0

불행히도 지금은 아닙니다. 항상/v1/acl API를 통해 토큰을 만들어야합니다. –

+0

이 정책 생성을 건너 뛸 수있는 방법이 있습니까? 예 : 클라이언트에서'acl_agent_token'을 사용함으로써? –