まめ畑

ゆるゆると書いていきます

RedshiftのIAM PolicyとWLM

先日、Redshiftの管理面 - まめ畑 でRedshiftの管理周りをざっくり書いたのですが、その中でIAM Policyの事も書いていました。

今日、IAM Policyの「Redshift readonly access」ではManagement ConsoleでQuery情報が取得できなくなっていました。

Query情報は
f:id:con_mame:20130731155816p:plain
の様な、PerformanceタブやQueriesタブの中で、リソースの使用状況や実行計画、クエリ毎のリソース使用状況を確認出来るものです。

もともと、redshift:Describe* ではQuery情報を見ることが出来ず、redshift:get*を与えなければいけなかったのですが、急に「User: arn:aws:iam::xxx:user/xxx is not authorized to perform: redshift:ViewQueriesInConsole 〜」
というエラーが出てQuery情報だけが参照できなくなりました。

Forumとdocumentにも掲載が現在は無いのですが、現在は以下の様なポリシーを設定することで、RedshiftのQueryやPerformance・クラスタ状態を参照することが出来ます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "redshift:Describe*",
        "redshift:ViewQueriesInConsole",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "sns:Get*",
        "sns:List*",
        "cloudwatch:Describe*",
        "cloudwatch:List*",
        "cloudwatch:Get*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

こちらは、cloudwatchやsnsにも参照権限を与えた場合です。

変更としては
"redshift:get*"

"redshift:ViewQueriesInConsole"
に変わりました。

Performanceは見せたいけど、クエリまでは見せたくないとかそういうために分けた気がします。
DescribeとViewと揃っていないのが気になりますが、用途は一応表してるかな…


他にもアナウンスはありませんでしたが、WLMを現在開くとQueue毎にTimeoutが設定出来るようになっています。リソースを取られたくないクエリを投げるQueueはTimeoutを短めにすることで、前よりはリソース割り当てに幅が出たかなという印象です。
f:id:con_mame:20130731155821p:plain