EC2自动发现的AWS凭证

时间:2015-05-27 21:11:22

标签: amazon-web-services amazon-ec2 hazelcast

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

2 个答案:

答案 0 :(得分:4)

我花了一段时间才找到合适的信息。诚然,明确指定IP地址的工作原理同样如此,除非您的集群由数百个节点组成,手动键入所有这些节点。

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

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

使用AWS控制台。它位于右上角的用户名下拉列表中(帐户设置所在的位置)。单击Security Credentials,然后单击Groups。使用以下策略创建组:

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

正如您所看到的,Hazelcast需要的唯一权限是" DescribeInstances"。我偶然发现了它 - 深入Fuad Malikov的Q& A线程中。

其余的都是微不足道的。创建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>

答案 1 :(得分:1)

目前Hazelcast尚不支持IAM角色身份验证,但计划在新发现SPI到位后实施。