<div dir="ltr"><div>I don't think it would cause an issue if every controller rotated all at once. The issues are more along the lines of rotating to key C when there are tokens out there that are encrypted with keys A and B. In other words over-rotation. As long as your keys are properly staged, do the rotation all at once or space them out, should not make any difference.</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 5, 2017 at 10:52 PM, Jeffrey Zhang <span dir="ltr"><<a href="mailto:zhang.lei.fly@gmail.com" target="_blank">zhang.lei.fly@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:small">fix subject typo</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 6, 2017 at 12:28 PM, Jeffrey Zhang <span dir="ltr"><<a href="mailto:zhang.lei.fly@gmail.com" target="_blank">zhang.lei.fly@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:monospace,monospace;font-size:small">Kolla have support keystone fernet keys. But there are still some</div><div style="font-family:monospace,monospace;font-size:small">topics worth to talk.</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">The key issue is key distribution. Kolla's solution is like</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">* there is a task run frequently by cronjob to check whether </div><div style="font-family:monospace,monospace;font-size:small">  the key should be rotate. This is controlled by </div><div style="font-family:monospace,monospace;font-size:small">  `fernet_token_expiry` variable</div><div style="font-family:monospace,monospace;font-size:small">* When key rotate is required, the task in cron job will generate a</div><div style="font-family:monospace,monospace;font-size:small">  new key by using `keystone-manage fernet-rotate` and distribute all</div><div style="font-family:monospace,monospace;font-size:small">  keys in /etc/keystone/fernet-keys folder to other by using </div><div style="font-family:monospace,monospace;font-size:small">  `rsync --delete`</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">one issue is: there is no global lock in rotate and distribute steps.</div><div style="font-family:monospace,monospace;font-size:small">above command is ran on all controllers. it may cause issues if</div><div style="font-family:monospace,monospace;font-size:small">all controllers run this at the same time.</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">Since we are using Ansible as deployment tools. there is not daemon </div><div style="font-family:monospace,monospace;font-size:small">agent at all to keep rotate and distribution atomic. Is there any</div><div style="font-family:monospace,monospace;font-size:small">easier way to implement a global lock?</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">possible solution:</div><div style="font-family:monospace,monospace;font-size:small">1. configure cron job with different time on each controller</div><div style="font-family:monospace,monospace;font-size:small">2. implement a global lock? ( no idea how )</div><div style="font-family:monospace,monospace;font-size:small"><br></div><div style="font-family:monospace,monospace;font-size:small">[0] <a href="https://docs.openstack.org/admin-guide/identity-fernet-token-faq.html" target="_blank">https://docs.openstack.org<wbr>/admin-guide/identity-fernet-<wbr>token-faq.html</a></div><span class="HOEnZb"><font color="#888888"><span class="m_-7916447938676981989HOEnZb"><font color="#888888"><div><br></div>-- <br><div class="m_-7916447938676981989m_1018139590902571019gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Regards,</font></span></div><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Jeffrey Zhang</font></span></div><div><span style="font-family:monospace,monospace;font-size:12.8px">Blog: </span><a style="font-family:monospace,monospace;font-size:12.8px" href="http://xcodest.me/" target="_blank">http://xcodest.me</a><font face="monospace, monospace"><br></font></div></div></div></div></div></div></div></div></div>
</font></span></font></span></div><span class="HOEnZb"><font color="#888888">
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-7916447938676981989gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Regards,</font></span></div><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Jeffrey Zhang</font></span></div><div><span style="font-family:monospace,monospace;font-size:12.8px">Blog: </span><a style="font-family:monospace,monospace;font-size:12.8px" href="http://xcodest.me/" target="_blank">http://xcodest.me</a><font face="monospace, monospace"><br></font></div></div></div></div></div></div></div></div></div>
</font></span></div></div>
<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank" rel="noreferrer">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" rel="noreferrer">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br></div></div>