AWS ElasticsearchService のインデックス自動削除

(ただのメモです)
IMSで30日でインデックス削除するインデックスポリシーを作成し、インデックステンプレートでインデックス作成時に自動でアタッチするようにする

KibanaやKibanaのDev Toolsで操作

### インデックスポリシー作成

インデックスポリシー名：all_delete
内容：30日で削除

![スクリーンショット 0002-11-27 8.42.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/b325df19-5406-bd36-6ac1-335b2732bc1e.png)

```json
{
    "policy": {
        "policy_id": "all_delete",
        "description": "Demonstrate a hot-warm-delete workflow.",
        "last_updated_time": 1606349256304,
        "schema_version": 1,
        "error_notification": null,
        "default_state": "hot",
        "states": [
            {
                "name": "hot",
                "actions": [],
                "transitions": [
                    {
                        "state_name": "delete",
                        "conditions": {
                            "min_index_age": "30d"
                        }
                    }
                ]
            },
            {
                "name": "delete",
                "actions": [
                    {
                        "delete": {}
                    }
                ],
                "transitions": []
            }
        ]
    }
}
```

### テンプレート更新

テンプレートへの部分的な変更適用ができないので(多分)、既存のテンプレートがあればそれを元に、変更箇所を追加してPUTでテンプレートをまるごと作り直す。上書き更新的な感じ

今回既存のCloudTrailテンプレートがあったので、それを"GET _template/log-aws-cloudtrail"して、出力結果に以下を追加した。そしてそれをPUT

>"opendistro.index_state_management.policy_id": "all_delete"


```json
PUT _template/log-aws-cloudtrail
{
    "index_patterns" : [
      "log-aws-cloudtrail-*"
    ],
    "settings" : {
      "index" : {
        "mapping" : {
          "total_fields" : {
            "limit" : "3000"
          },
          "ignore_malformed" : "true"
        }
      },
      "opendistro.index_state_management.policy_id": "all_delete"
    },
    "mappings" : {
      "properties" : {
        "additionalEventData.vpcEndpointId" : {
          "type" : "keyword"
        },
        "requestParameters.instanceType" : {
          "type" : "keyword"
        },
        "eventID" : {
          "type" : "keyword"
        },
        "requestParameters.filter" : {
          "type" : "text"
        },
        "awsRegion" : {
          "type" : "keyword"
        },
        "responseElements.lastModified" : {
          "type" : "date"
        },
        "requestParameters.maxResults" : {
          "type" : "integer"
        },
        "responseElements.version" : {
          "type" : "keyword"
        },
        "responseElements.role" : {
          "type" : "text"
        },
        "errorCode" : {
          "type" : "keyword"
        },
        "requestParameters.MaxResults" : {
          "type" : "integer"
        },
        "requestParameters.sort" : {
          "type" : "keyword"
        },
        "requestParameters.endTime" : {
          "format" : "MMM dd, yyyy hh:mm:ss a||epoch_millis",
          "type" : "date"
        },
        "requestParameters.bucketPolicy.Statement.Principal" : {
          "type" : "text"
        },
        "requestParameters.sortBy" : {
          "type" : "text"
        },
        "requestParameters.startTime" : {
          "format" : "MMM dd, yyyy hh:mm:ss a||epoch_millis",
          "type" : "date"
        },
        "requestParameters.DescribeFlowLogsRequest" : {
          "type" : "text"
        },
        "requestParameters.maxItems" : {
          "type" : "integer"
        },
        "requestParameters.attribute" : {
          "type" : "text"
        }
      }
    },
    "aliases" : { }
}
```



### 確認

適当にインデックス作成

```json
PUT log-aws-cloudtrail-2021-01-01/ 
```

テンプレートのマッピングに該当するインデックスが作成され、テンプレートに追加したポリシーがアタッチされるか！？
index_state_managementにpolicyがアタッチされていることがわかります

```json:
GET log-aws-cloudtrail-2021-01-01/
```

```json:
          "ignore_malformed" : "true"
        },
        "opendistro" : {
          "index_state_management" : {
            "policy_id" : "all_delete"
          }
        },
        "number_of_shards" : "3",
```

KibanaのIMSからもpolicyのall_deleteがアタッチされてるのがわかります

![スクリーンショット 0002-11-27 8.36.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/5477cc0d-f96a-d06c-99d6-38990826e260.png)