0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS IAMアカウントを、ステージングと本番とで分けて、リージョンごとにリソースを作成・閲覧できるようにしたときのメモ

Posted at

ふと思ったこと

遊びでIAMアカウントを友達用に作成し、渡したのですが、いざそのIAMアカウントでリソースにアクセスすると、あらやだ。私が作ったリソースも普通に見られてしまうのです。

...やだというのは感情論に過ぎないのですが、もし仕事で、実際に本番稼働しているシステムのステージングに変更を加えようとしたら、誤って本番を更新しちゃった、なんてことも人間はやってしまうと思い、タイトルのような設定ができないか自由研究をしようと思いました。

理想の状態

理想としては、「あるIAMアカウントは、あるリージョンでしか作業できない」という状態を目指しました。

環境 リージョン
ステージング osaka
本番 tokyo

上記の設定ができると、友達にも自分の作業を見られなくて済むなと思い、早速設定してみました。

実際にやってみた結果

まず、jsonポリシーだけでやろうとしましたが、以下のようなシンプルな指定だけだと、実際に構築する際にエラーが多発しました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": "ap-northeast-1"
                }
            }
        }
    ]
}

結局は「なんちゃらかんちゃらフルアクセス」といったデフォルトでAWSが用意してくれているポリシーをIAMにアタッチしました。

ただ、json側で一部明示的にDenyしてるので、実際にユーザーが他リージョンにアクセスしても、リソースが見られることはありませんでした。

最終的な設定

大まかなリソースごとのリージョン制限はアカウントごとにjsonポリシーを作成し、割り当てました。
そして、構築時にエラーが出ないよう、デフォルトで用意されているポリシーをポチポチ割り当てました。

これで、一旦は目指している状態に近づけることができ、リージョンの異なるIAMからはリソース閲覧ができないようになりました。

今後は、現状だと少し権限が強い部分もあるので、少しずつ権限を狭められる努力をしていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?