Conversation
anthonyeleven
left a comment
There was a problem hiding this comment.
Good stuff. Was AI used here?
|
|
I would like to promote this blog on social media through the Ceph LinkedIn and Twitter accounts. I'll wait until the changes have been made. |
b185b08 to
9c26fd4
Compare
| - "security" | ||
| --- | ||
|
|
||
| Bucket notifications to a Kafka broker over plaintext have worked for a long time. |
There was a problem hiding this comment.
the whole paragraph is incorrect. we supported SASL over SSL.
so, user/password over encrypted and authenticated connection was supported.
mtls only adds client side (not user) authentication by the broker.
| unsecured listener and no notifications at all. | ||
|
|
||
| That gap is now closed. RGW's Kafka endpoint supports SASL/PLAIN, | ||
| SASL/SCRAM-SHA-256 and SCRAM-SHA-512, one-way TLS, SASL over TLS, mutual TLS, and — |
There was a problem hiding this comment.
IIRC, SCRAM was also supported (but probably not tested)
| | SCRAM | SASL_PLAINTEXT | 9095 | Identity, without sending the password | | ||
| | SSL | SSL | 9093 | The channel is encrypted | | ||
| | SASL_SSL | SASL_SSL | 9094 | Both: credentials inside TLS | | ||
| | mTLS | SSL + `client.auth=required` | 9096 | Both sides prove identity, no password | |
There was a problem hiding this comment.
the meaning of "identity" here an in the SASL related lines of the table is different.
SASL mecahnism allow the broker to know identity of the user (a person)
TLS allows the TCP server to know the identity of the TCP client (a machine)
(mTLS allow also for the inverse)
please use the correct terms. note that PLAIN SASL (user/password) can work over PLAINTEXT connection, TLS connection or mTLS connection.
and the same is true for SCRAM user identifications
| Every section creates a bucket and attaches a topic to it, and the JSON differs only | ||
| in two names. This helper keeps the rest of the post shorter: | ||
|
|
||
| ```bash |
There was a problem hiding this comment.
this section should be informational, not a toolset
please avoid bach functions, utilities etc.
There was a problem hiding this comment.
the actual user may not use aws CLI at all (they can use java/ golang etc as client).
so, this section should provide a clear example to how they should use it in their system.
a bash function just obscures that
| | ----------------------- | ------- | ----------------------------------------------- | | ||
| | `y-ca.crt` | RGW | CA certificate — the `ca-location` attribute | | ||
| | `server.keystore.jks` | Broker | Broker private key and signed certificate | | ||
| | `server.truststore.jks` | Broker | Trusts the client CA (needed for mTLS) | |
| An SNS topic on its own does nothing until a bucket points at it: | ||
|
|
||
| ```bash | ||
| attach_topic test-bucket plaintext-notifications |
| - **`rgw_allow_notification_secrets_in_cleartext` is not set.** RGW rejects topic | ||
| credentials over a cleartext connection without it, so the SASL_PLAINTEXT sections | ||
| do not work. | ||
| - **The CA certificate or client key is not readable by `radosgw`.** The paths in the |
There was a problem hiding this comment.
not sure it is just a matter of being readable.
the file's permision has to be set correctly (IIRC, setting to 777 still make it readable, but would fail since the permissions are too wide)
|
|
||
| ## Summary | ||
|
|
||
| | Mechanism | Encryption | Authentication | RGW topic attributes | |
There was a problem hiding this comment.
the term "Authentication" here is misleading. both SSL and mTLS has authentication (one side, or both sides) but no user identification
| the `kafka_security_test` marker, in | ||
| [`src/test/rgw/bucket_notification/`](https://github.com/ceph/ceph/tree/main/src/test/rgw/bucket_notification). | ||
|
|
||
| For a staged migration, start from a plaintext topic, confirm that events are |
There was a problem hiding this comment.
we already support SASL over SSL. just remove this section (lines 711 - 714)
|
@sujay-d07 veside the comments the rest looks good (the majority of the technical content). |
Signed-off-by: sujay-d07 <sujaydongre07@gmail.com>
9c26fd4 to
dad4c55
Compare
|
It would be great to get this blog series out before the GSoC showcase. Is there anything I can help with here? @sujay-d07 @yuvalif |
anthonyeleven
left a comment
There was a problem hiding this comment.
AM: I think it’s ready?
Really excited to share Part 1 of my blog on Kafka Bucket Notifications in Ceph RGW! :)
Part 1 includes the plaintext, SASL_PLAINTEXT (PLAIN and SCRAM), SSL, SASL_SSL, and mTLS mechanisms.
Each section includes the commands needed to reproduce the setup and steps to verify that events actually make it to the Kafka broker.