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?

IAM入門 — ユーザーとポリシーでAWSの権限を管理する

0
Posted at

IAM入門 — ユーザーとポリシーでAWSの権限を管理する

はじめに

IAM(Identity and Access Management)はAWSのアクセス管理サービスです。

「誰が(ユーザー・ロール)」「何に(AWSサービス)」「どんな操作を(アクション)」できるかを制御します。

AWSのセキュリティの基本であり、EC2やS3を安全に運用するうえで必ず理解が必要です。


主な概念

用語 説明
ユーザー AWSにアクセスする人
グループ ユーザーをまとめてポリシーを適用する単位
ロール サービスやEC2インスタンスに付与する権限
ポリシー 何にどんな操作を許可するかを定義したJSONドキュメント

ルートユーザーを使わない

AWSアカウント作成時のメールアドレスでログインする「ルートユーザー」は、すべての操作が可能な最強の権限を持ちます。

日常的な作業には必ずIAMユーザーを作って使うのが基本です。


IAMユーザーの作成

  1. AWSコンソールでIAMを開く
  2. 「ユーザー」→「ユーザーを作成」
  3. ユーザー名を入力
  4. 「コンソールへのアクセスを許可」にチェック
  5. 必要なポリシーをアタッチ(例: AdministratorAccess)
  6. 作成完了

ポリシーの基本

ポリシーはJSON形式で記述します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
項目 説明
Effect Allow(許可)または Deny(拒否)
Action 許可/拒否するAWSの操作(例: s3:GetObject)
Resource 対象のリソース(ARNで指定)

AWSには事前定義されたマネージドポリシーが多数あるため、AmazonS3ReadOnlyAccessなどを使い回せます。


IAMロール — EC2からS3にアクセスする場合

EC2上のアプリからS3にアクセスするとき、アクセスキーをコードに埋め込むのはNGです。代わりにIAMロールを使います。

  1. IAMロールを作成(ユースケース: EC2を選択)
  2. ポリシーをアタッチ(例: AmazonS3FullAccess)
  3. EC2インスタンスにロールをアタッチ

EC2にロールをアタッチすると、そのインスタンス上のアプリは自動的にS3への権限を持ちます。

// ロールがあればアクセスキー不要でSDKが動く
S3Client s3 = S3Client.builder()
    .region(Region.AP_NORTHEAST_1)
    .build(); // 認証情報はIAMロールから自動取得

最小権限の原則

IAMの設計で重要なのは最小権限の原則です。

「必要な操作だけを許可する」のが基本で、AdministratorAccessを安易に全員に付与するのはセキュリティリスクになります。


まとめ

やること 方法
日常作業 IAMユーザーを使う(ルートユーザーは使わない)
権限設定 マネージドポリシーをアタッチ
EC2→S3のアクセス IAMロールをEC2にアタッチ(アクセスキー不要)
設計方針 最小権限の原則を守る

JavaのSpring SecurityでURL単位の権限制御をするのと考え方は同じです。「誰に何を許可するか」を明示的に定義するのが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?