本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开启MSK已配置集群的公共访问权限
亚马逊MSK允许您选择开启对运行 Apache Kafka 2.6.0 或更高MSK版本的预配置集群的代理的公开访问权限。出于安全考虑,您无法在创建MSK集群时开启公共访问权限。但是,您可以更新现有集群以使其可供公开访问。您还可以创建一个新集群,然后对其进行更新,使其可供公开访问。
您可以开启对MSK集群的公共访问权限,无需支付额外费用,但进出集群的数据需要支付标准 AWS 的数据传输费用。有关定价的信息,请参阅 Amazon EC2 按需定价
要开启对MSK已配置集群的公共访问权限,请先确保该集群满足以下所有条件:
与集群关联的子网必须是公有子网。这意味着子网必须具有关联的路由表并连接了互联网网关。有关如何创建和连接互联网网关的信息,请参阅 Amazon VPC 用户指南中的互联网网关。
未经身份验证的访问控制必须处于关闭状态,并且必须至少开启以下访问控制方法之一:SASL/IAM, SASL/SCRAM,m。TLS有关如何更新集群的访问控制方法的信息,请参阅更新 Amazon MSK 集群的安全设置。
-
必须开启集群内的加密。开启设置是创建集群时的默认设置。对于在集群中的加密处于关闭状态时创建的集群,无法为其开启加密。因此,对于在集群中的加密处于关闭状态时创建的集群,无法为其开启公共访问权限。
-
代理和客户端之间的明文流量必须关闭。有关在其开启时如何关闭的信息,请参阅更新 Amazon MSK 集群的安全设置。
-
如果您使用的是SASL/SCRAM或 m TLS 访问控制方法,则必须为集群设置 Apache Kafka ACLs。ACLs为集群设置 Apache Kafka 后,请更新集群的配置,将该集群的属性设置
allow.everyone.if.no.acl.found
为 false。有关如何更新集群配置的信息,请参阅代理配置操作。如果您正在使用IAM访问控制并想要应用授权策略或更新您的授权策略,请参阅IAM访问控制。有关 Apache Kafka 的信息ACLs,请参阅。阿帕奇 Kafka ACLs
确保MSK集群满足上面列出的条件后,您可以使用 AWS Management Console AWS CLI、或 Amazon MSK API 开启公有访问权限。开启集群的公共访问权限后,您可以为其获取一个公共引导代理字符串。有关获取集群引导代理的信息,请参阅获取 Amazon MSK 集群的引导程序代理。
重要
除了开启公共访问外,还要确保集群的安全组具有允许从您的 IP 地址进行公开访问的入站TCP规则。因此,建议您尽可能严格设置这些规则。有关安全组和入站规则的信息,请参阅 Amazon VPC 用户指南VPC中的适用于您的安全组。有关端口号,请参阅 端口信息。有关如何更改集群安全组的说明,请参阅 更改 Amazon MSK 集群的安全组。
注意
如果您按照以下说明开启公共访问权限,但仍无法访问集群,请参阅无法访问已开启公共访问权限的集群。
使用控制台开启公共访问权限
登录并在家中打开 Amazon https://console.aws.amazon.com/msk/主MSK机? AWS Management Console region=us
-east-1#/home/。 在集群列表中,选择要为其开启公共访问权限的集群。
-
选择属性选项卡,然后找到网络设置部分。
-
选择编辑公共访问权限。
使用开启公共访问权限 AWS CLI
运行以下 AWS CLI 命令,用集群的当前版本替换
ClusterArn
ARN和Current-Cluster-Version
。要查找集群的当前版本,请使用DescribeCluster操作或 desc ribe-AWS CLI cluster 命令。示例版本是 KTVPDKIKX0DER
。aws kafka update-connectivity --cluster-arn
ClusterArn
--current-versionCurrent-Cluster-Version
--connectivity-info '{"PublicAccess": {"Type": "SERVICE_PROVIDED_EIPS"}}'此
update-connectivity
命令的输出类似于以下JSON示例。{ "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef" }
注意
要关闭公共访问权限,请使用类似的 AWS CLI 命令,但改为使用以下连接信息:
'{"PublicAccess": {"Type": "DISABLED"}}'
-
要获得
update-connectivity
操作结果,请运行以下命令,ClusterOperationArn
替换为ARN在命令输出中获得的update-connectivity
命令。aws kafka describe-cluster-operation --cluster-operation-arn
ClusterOperationArn
此
describe-cluster-operation
命令的输出类似于以下JSON示例。{ "ClusterOperationInfo": { "ClientRequestId": "982168a3-939f-11e9-8a62-538df00285db", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-06-20T21:08:57.735Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "UPDATE_CONNECTIVITY", "SourceClusterInfo": { "ConnectivityInfo": { "PublicAccess": { "Type": "DISABLED" } } }, "TargetClusterInfo": { "ConnectivityInfo": { "PublicAccess": { "Type": "SERVICE_PROVIDED_EIPS" } } } } }
如果
OperationState
的值为UPDATE_IN_PROGRESS
,请等待一段时间,然后再次运行describe-cluster-operation
命令。
使用 Amazon 开启公共访问权限 MSK API
要使用开API启或关闭集群的公共访问权限,请参阅UpdateConnectivity。
注意
出于安全考虑,Amazon MSK 不允许公众访问 Apache ZooKeeper 或KRaft控制器节点。