0
1

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ポリシーの設定について

Last updated at Posted at 2024-09-26

はじめに

ITスクールのハッカソンに参加した際、個人のAWSマネジメントコンソールにポリシーを設定せずにアクセスした結果、他の参加者の個人情報が無防備に閲覧できる事態が発生しました。

この経験から、AWSのIAM(Identity and Access Management)の重要性を痛感し、必要な権限のみを許可するIAMポリシーの作成プロセスを振り返ります。

本記事は、その実体験を基にした知識の整理と、今後の自分への備忘録になります。

知識整理

以下に、必要な知識を簡単に整理します。

IAMとは

IAM(Identity and Access Management)は、AWSのサービスで、ユーザーやグループのアクセス権限を管理するための機能です。

IAMを使用することで、誰がAWSリソースにアクセスできるか、またそのユーザーがどの操作を行えるかを細かく制御することができます。

IAMロールとは

IAMロールは、特定のアクセス権限を持つ「役割」です。IAMユーザーに直接付与するのではなく、他のAWSサービスやアプリケーションから一時的にその権限を取得するために使用されます。

スクリーンショット 2024-09-27 7.18.40.png
引用画像:https://aws.amazon.com/jp/builders-flash/202303/learn-iam-role/

これにより、リソースにアクセスする際のセキュリティを強化できます。

IAMポリシーとは

IAMポリシーは、JSON形式で書かれたドキュメントで、特定のアクションを許可または拒否するためのルールを定義します。

スクリーンショット 2024-09-27 7.16.44.png
引用画像:https://iselegant.hatenablog.com/entry/2020/05/24/215808

ポリシーはユーザー、グループ、ロールにアタッチして使用され、AWSリソースへのアクセス制御を実現します。

アカウント間のスイッチ設定とは

アカウント間のスイッチ設定は、異なるAWSアカウント間でのアクセスを簡単にするための機能です。

スクリーンショット 2024-09-27 7.20.03.png
引用画像:https://baresupport.jp/blog/2022/05/12/113/

この設定を行うことで、あるアカウントのIAMユーザーが、別のアカウントのリソースにアクセスできるようになります。特に複数のアカウントを管理している場合に便利です。

IAMポリシー作成及び適用

IAMポリシーを作成し、適用する際は、権限の範囲を明確に定義することが重要です。

ここでは、具体的な作成手順と適用の流れについて説明します。
ステップ1:IAMポリシーの作成
ステップ2:適用の流れ

適切にポリシーを設定することで、最小限の権限でセキュリティを保ちながら、必要な操作が実行できるようになります。

ステップ1:IAMポリシーの作成

AWSマネジメントコンソールにログイン後、IAMサービスへ移動し、「ポリシー」のセクションを選択します。

スクリーンショット 2024-11-14 22.05.53.png

「ポリシーの作成」ボタンをクリックし、JSON形式で新しいポリシーを記述します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "sts:GetCallerIdentity",
                "iam:ListAccountAliases"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2024-07-08T00:00:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "2024-08-18T23:59:59Z"
                }
            }
        }
    ]
}

ポリシーに名前と説明を付けて、設定内容を保存します。この際、他のユーザーが理解しやすいように説明を工夫することが重要です。

以下の箇所は、特定の期間内を指定していますので、必要に応じて修正してください。

            "DateGreaterThan": {
                "aws:CurrentTime": "2024-07-08T00:00:00Z"
            },
            "DateLessThan": {
                "aws:CurrentTime": "2024-08-18T23:59:59Z"

このポリシーは、特定の期間内(2024年7月8日から2024年8月18日)にすべてのアクションを許可しますが、その期間外はすべてのアクションが拒否されます。

スクリーンショット 2024-11-14 22.07.34.png

さらに、呼び出し元の情報取得とアカウントエイリアスの一覧表示は常に拒否されるように設定されています。

ステップ2:IAMポリシー適用の流れ

作成したポリシーは、IAMユーザーやグループ、ロールに適用できます。

スクリーンショット 2024-11-14 22.08.40.png

対象となるユーザーやロールを選択し、ポリシーをアタッチします。

スクリーンショット 2024-11-14 22.10.28.png

定期的にポリシーの見直しを行い、必要に応じて修正を加えることで、セキュリティを維持します。

適用後、ポリシーが正しく動作しているかを確認するため、対象ユーザーでログインして実際に操作してみてください!

まとめ

AWSのIAMポリシーを正しく設定することは、個人情報や重要なデータを守るために非常に重要です。

ハッカソンでの経験を通じて、必要な権限のみを許可することの重要性を再認識しました。

この忘備録が、今後のAWS利用時の参考になれば幸いです。IAMの知識を深めることで、より安全なクラウド環境を構築していきましょう!

参考記事

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?