-
Notifications
You must be signed in to change notification settings - Fork 51
HDDS-14268. [Website v2] [Docs] [Administrator Guide] Configuring Kerberos #192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
jojochuang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll merge it as is.
@rich7420 please open jiras to follow up with the content that should go into System Internals.
| ## Tokens | ||
|
|
||
| Ozone uses a notion of tokens to avoid overburdening the Kerberos server. When you serve thousands of requests per second, involving Kerberos might not work well. Hence once an authentication is done, Ozone issues delegation tokens and block tokens to the clients. These tokens allow applications to do specified operations against the cluster, as if they have kerberos tickets with them. Ozone supports following kinds of tokens. | ||
|
|
||
| ### Delegation Token | ||
|
|
||
| Delegation tokens allow an application to impersonate a users kerberos credentials. This token is based on verification of kerberos identity and is issued by the Ozone Manager. Delegation tokens are enabled by default when security is enabled. | ||
|
|
||
| ### Block Token | ||
|
|
||
| Block tokens allow a client to read or write a block. This is needed so that Datanodes know that the user/client has permission to read or make modifications to the block. | ||
|
|
||
| ### S3AuthInfo | ||
|
|
||
| S3 uses a very different shared secret security scheme. Ozone supports the AWS Signature Version 4 protocol, and from the end users perspective Ozone's S3 feels exactly like AWS S3. | ||
|
|
||
| The S3 credential tokens are called S3 auth info in the code. These tokens are also enabled by default when security is enabled. | ||
|
|
||
| Each of the service daemons that make up Ozone needs a Kerberos service principal name and a corresponding [kerberos key tab](https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html) file. | ||
|
|
||
| All these settings should be made in `ozone-site.xml`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These lines should move to System Internals --> Security --> Tokens
| #### Manual Approval | ||
|
|
||
| If these are brand new Datanodes and Kerberos key tabs are not present at the Datanodes, then this request for the Datanodes identity certificate is queued up for approval from the administrator (This is work in progress, not committed in Ozone yet). In other words, the chain of trust is established by the administrator of the cluster. | ||
|
|
||
| #### Automatic Approval | ||
|
|
||
| If you running under an container orchestrator like Kubernetes, we rely on Kubernetes to create a one-time token that will be given to Datanode during boot time to prove the identity of the Datanode container (This is also work in progress.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure if this is implemented already. @ChenSammi or @fapifta any ideas?
| | `hdds.datanode.http.auth.kerberos.principal` | Datanode HTTP server service principal. | | ||
| | `hdds.datanode.http.auth.kerberos.keytab` | The keytab file used by Datanode HTTP server to login as its service principal. | | ||
|
|
||
| ### How a Datanode becomes secure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This and the rest of page should go into System Internals.
What changes were proposed in this pull request?
Migrate and combinato the v1 doc "Securing Ozone" https://ozone.apache.org/docs/edge/security/secureozone.html and "Securing Datanodes
"https://ozone.apache.org/docs/edge/security/securingdatanodes.html into v2 page "Configuring Kerberos" at https://ozone-site-v2.staged.apache.org/docs/administrator-guide/configuration/security/kerberos
What is the link to the Apache Jira?
HDDS-14268
How was this patch tested?
Check off which of the following tests were done on this change. If additional testing was done, please elaborate here as well.