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のユーザーとロールを正しく使い分けるコツ

0
Posted at

AWSのIAM(Identity and Access Management)は、クラウドリソースへのアクセスを細かく制御できる便利な仕組みです。特に「ユーザー」と「ロール」は名前が似ているため、初心者は混同しがちです。この記事では、ユーザーとロールの違いを整理し、GitHub Actions から安全にリソースへアクセスするまでの流れを解説します。

1. IAMユーザーとは?

  • 実在する人物やサービスアカウントに対して作成する認証情報(アクセスキー・シークレットキー)を保持します。
  • 長期的に使用することが前提で、パスワードやMFAでの認証も可能です。
  • 例: 社内の開発者が直接 AWS コンソールにログインするときに使う。

2. IAMロールとは?

  • 「誰が」ではなく「何が」行うかを定義した一時的な権限セットです。
  • ロール自体には認証情報がありません。代わりに AssumeRole という API 呼び出しで一時的な認証情報を取得します。
  • 主に CI/CD パイプラインや外部サービス が一時的に権限を借りるシーンで利用されます。

3. ユーザーとロールを混同しないための整理ポイント

項目 IAMユーザー IAMロール
所有者 人やサービスアカウント AWS リソースや外部サービス
認証情報 永続的(アクセスキー) 一時的(STS トークン)
用途 手動操作・長期利用 自動化・一時利用
MFA 必須にできる 必須にできない(AssumeRole 時に MFA を要求可)

4. GitHub Actions でロールを安全に利用する手順

  1. ロール作成
    必要な権限(例: S3 バケットへの PutObject)だけを許可したロールを作ります。信頼ポリシーで GitHub の OIDC プロバイダーを許可します。

  2. GitHub リポジトリに OIDC 設定
    リポジトリの Settings → Security → Actions → OIDC で audiences を sts.amazonaws.com に設定。

  3. Workflow で AssumeRole
    aws-actions/configure-aws-credentials アクションを使い、ロールを一時的に取得します。

name: Deploy to S3
on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write   # OIDC 用に必要
    steps:
      - uses: actions/checkout@v3
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v2
        with:
          role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsDeploy
          aws-region: ap-northeast-1
      - name: Sync static files
        run: aws s3 sync ./public s3://my-bucket --delete

上記のように ロールを直接参照 すれば、アクセスキーをリポジトリに保存する必要がなくなり、漏洩リスクが大幅に低減します。

5. まとめ

  • ユーザーは長期的に使う人・サービス向け、ロールは一時的に権限を貸し出す仕組みとして使い分ける。
  • CI/CD ではロール+GitHub OIDC を組み合わせると、認証情報をコードに埋め込まずに安全にデプロイが可能です。
  • 最初は権限を最小化し、必要に応じてポリシーを拡張していくと、セキュリティリスクを抑えられます。

詳しい手順はこちら → https://felixstudio0.gumroad.com/?utm_source=qiita&utm_medium=github_actions&utm_campaign=2026-q1&utm_content=qiita-footer

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?