Amazon web services 用于EC2自动发现的AWS凭据

Amazon web services 用于EC2自动发现的AWS凭据,amazon-web-services,amazon-ec2,hazelcast,Amazon Web Services,Amazon Ec2,Hazelcast,根据,为了使用EC2自动发现,需要在配置文件中提供AWS凭据。 当托管在IAM角色中启动的EC2实例上时(根据AWS最佳实践),Hazelcast是否有办法检索临时凭据,而不是使用长期访问密钥目前Hazelcast还不支持IAM角色身份验证,但计划在新的discovery SPI就位后实施此功能。我花了一段时间才找到正确的信息。诚实地明确指定IP地址也同样有效,除非您的集群由数百个节点组成,可以手动键入所有节点 指定AWS标记名称/值对是可选的。我有点偏执,我可能会错误地加入另一个集群,这样显式

根据,为了使用EC2自动发现,需要在配置文件中提供AWS凭据。
当托管在IAM角色中启动的EC2实例上时(根据AWS最佳实践),Hazelcast是否有办法检索临时凭据,而不是使用长期访问密钥

目前Hazelcast还不支持IAM角色身份验证,但计划在新的discovery SPI就位后实施此功能。

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

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

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

使用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>

真的

这方面的时间框架是什么?我想这两个版本都会出现在3.6版本中(无论何时;-),这是现在的版本-这是一个遗憾,因为Hazelcast的AWS特定指南中甚至没有提到如此重要的信息!Mohamnag,AWS模块自述中提到过