amazon-web-services - 用于 EC2 自动发现的 AWS 凭证

标签 amazon-web-services amazon-ec2 hazelcast

根据 Hazelcast manual ,为了使用 EC2 自动发现,需要在配置文件中提供 AWS 凭证。
当托管在以 IAM 角色启动的 EC2 实例上时,Hazelcast 是否可以不使用长期访问 key 来检索临时凭证(根据 AWS 最佳实践 "Use Temporary Security Credentials (IAM Roles) Instead of Long-Term Access Keys")

最佳答案

我花了一段时间才找到正确的信息。老实说,明确指定 IP 地址也同样有效,除非您的集群由数百个节点组成,需要手动输入所有节点。

指定 AWS 标签名称/值对是可选的。我有点偏执,我可能会错误地加入另一个集群,最好明确创建一个这样的资源(服务器)组。

首先,您需要创建一个具有 Hazelcast 所需权限的 IAM 用户。显然,您不想为此使用您的 root 用户凭据。

使用 AWS 控制台。它位于右上角的用户名下拉列表(帐户设置所在的位置)。单击安全凭据,然后单击组。创建具有以下策略的组:

{
  "Version": "xxxxxxx",
  "Statement": [
    {
      "Sid": "xxxxxx",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

如您所见,Hazelcast 需要的唯一权限是“DescribeInstances”。我偶然发现了它 - 在 Fuad Malikov 的一个问答线程的深处。

其余的都是微不足道的。创建一个 IAM 用户,例如使用该安全组“hazelcast”,并下载(导出)其凭据,您应该将其放入 Hazelcast 配置中,如下所示。我正在使用 Spring,但是有一对一映射到经典 Hazelcast 配置文件。或者您可以以编程方式设置这些属性 - Spring 基本上为我所做的。
<property name="properties">
  <props>
      <prop key="hazelcast.icmp.enabled">true</prop>
  </props>
</property>
<property name="join">
    <bean class="com.hazelcast.config.JoinConfig">
        <property name="multicastConfig">
            <bean class="com.hazelcast.config.MulticastConfig">
                <property name="enabled" value="false"/>
            </bean>
        </property>
        <property name="tcpIpConfig">
            <bean class="com.hazelcast.config.TcpIpConfig">
                <property name="enabled" value="false"/>
            </bean>    
        </property>
        <property name="awsConfig">
            <bean class="com.hazelcast.config.AwsConfig">
                <property name="enabled" value="true"/>
                <property name="region" value="us-west-2"/>
                <property name="accessKey" value="zzzzzzz"/>
                <property name="secretKey" value="yyyyyyy"/>
                <property name="tagKey" value="your-instance-tag-key"/>
                <property name="tagValue" value="your-instance-tag-value"/>
            </bean>
        </property>
</property>

关于amazon-web-services - 用于 EC2 自动发现的 AWS 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493222/

相关文章:

ruby-on-rails - rails 、Postgres、EC2/AWS : Database Config Does Not Specify Adapter Error

amazon-web-services - 在 Amazon Mechanical Turk 上进行不超过一次的调查

rest - 如何在 Amazon S3 上传后触发 REST 调用

amazon-web-services - 如何检查AWS EC2实例当前的正常运行时间

java - 在 WildFly 18 上使用 Spring Session 和 HazelCast IMDG 进行 session 复制和集群

java - 当 max-size-policy 为 USED_HEAP_SIZE 时,Hazelcast 驱逐无法与 Spring 一起使用。它与 max-size-policy 作为 PER_NODE 一起正常工作

amazon-web-services - Terraform helm_release 在设置标签上失败

ruby-on-rails - VPC无法访问数据库实例

java - 以分布式模式运行由 hazelcast 缓存支持的 vert.x 集群

php - 使用 PHP 读取 Amazon Cloudfront API 结果