OCI IAM拒否ポリシーの有効活用。
IAM拒否ポリシーがリリースされた直後に試してみてうまくいかなかったのですが、改めて試してみたらうまくいったので。タグベースはうまく動かないのかなあと、すぐにあきらめちゃったのが良くなかったかも。
いや、しかし。この手のニーズはあると思うのだけど。誰か書いてないのかしらん。
何がしたいか
特定のタグをつけたリソースの誤削除防止。
特にインスタンスの、停止と終了って、いまだにドキドキしません?
昔のコンソールだと終了って真っ赤なボタンで分かりやすかったですよね。
準備1:タグを作る
こんなタグ、作ってみました。AWSの真似。そういや、タイムゾーンがJSTで表示されるようになって良かったですよね~。
準備2:ポリシーを作る
こんなポリシー、作ってみました。PRODコンパートメントの中で、さっき作ったタグがtrueのリソースは削除できなくなります。
deny any-user to manage all-resources in compartment PROD where all { request.permission = /*_DELETE/ , target.resource.tag.ResourceManagement.DeletionProtection='true' }
準備3:リソースを作る
終了を試そう
注意点
- コンピュートで試しただけなので、他のリソースでどうなるかは分かりません。絶対にテストしてね。
- IAM Policyを書くときに
target.resource.tag以下のタグ名を間違っていると、常にfalseと判断される模様(=上に書いたポリシーだと、allの中が常にfalseになって結果的に削除可になる)。
いつか実案件で使ってみたいですね。試した人いましたら、こっそり結果教えてください。


