3

ありがとうございます!CloudFormation Elasticsearch Service - 同じリソース上のリソース間の循環依存性

私は年齢のため、この問題に引っかかってきたし、解決策を見つけることができません...

基本的に私は私のelasticsearchサービスに同じアクセスポリシーを実装したいが、私はしようとすると、これを再作成

雲の形で私は循環依存エラーを受け取ります..私はFn :: GetAttのエラーを引き起こす原因を知っています弾性検索DomainArnを参照してください。

私の質問は、私のelkドメインarnを参照せずにこのステートメントを実装する方法ですか?

テンプレートにエラーが含まれている:循環資源間の依存関係:[XXXXXX]

"XXXXXX": { 
      "Type": "AWS::Elasticsearch::Domain", 
      "Properties": { 
       "AccessPolicies": { 
        "Version": "2012-10-17", 
        "Statement": [ 
         { 
          "Effect": "Allow", 
          "Principal": { 
           "AWS": { 
            "Fn::GetAtt": ["myuser", "Arn"] 
           } 
          }, 
          "Action": "es:*", 
          "Resource": { 
           "Fn::GetAtt": ["XXXXXX", "DomainArn"] 
          } 
         }, 
         { 
          "Sid": "", 
          "Effect": "Allow", 
          "Principal": { 
           "AWS": "*" 
          }, 
          "Action": "es:*", 
          "Resource": { 
           "Fn::GetAtt": ["XXXXXX", "DomainArn"] 
          }, 
          "Condition": { 
           "IpAddress": { 
            "aws:SourceIp": [ 
             "xx.xx.xx.xx", 
             "xx.xx.xx.xx" 
            ] 
           } 
          } 
         } 
        ] 
       }, 
       "DomainName": "XXXXXX", 
       "EBSOptions": { 
        "EBSEnabled": "True", 
        "VolumeSize": 10, 
        "VolumeType": "gp2" 
       }, 
       "ElasticsearchClusterConfig": { 
        "InstanceCount": 1, 
        "InstanceType": "t2.small.elasticsearch" 
       }, 
       "ElasticsearchVersion": "5.1", 
       "SnapshotOptions": { 
        "AutomatedSnapshotStartHour": 0 
       }, 
       "Tags": { 
        "Key": "name", 
        "Value": "XXXXXX" 
       } 
      } 
     }, 

答えて

6

よりもむしろ規則hereを使用してARNを構築するために、ドメインARNを取得Fn:Subを使用するようにFn::GetAttを使用する(使用」までスクロールダウンAmazon ESのドメインリソースを指定するための次の構文」を参照してください)。

{ "Fn::Sub":"arn:aws:es:${AWS::Region}:${AWS::AccountId}:domain/XXXXXX" } 
+0

大変感謝!これ以上の検証エラーはありません! –