IAM(Identity and Access Management)


TEAM(Temporary elevated access management)/一時的にユーザーに権限を与え管理できるOSS

記事:


未割当のMFAデバイスの削除

仕様:

例:


文字数制限

対策:

記事:


仕様変更

IAM roleの暗黙的自己信頼が無くなった


最小権限を用意する


多段AssumeRole(Role chaining)

やりたい事:

account1:

account2:

account3:


Access advisor: IAMユーザがアクセスしたサービスを表示


Access Analyzer: 外部アクセスが可能になっているか等の分析


古い/使用していないIAM user/roleを探す

セキュリティ上、アクセス可能なIAM userやIAM roleが放置されると良くない。

IAM user:

IAM role:


セッションの有効期限の延長


Web Identity Federation: 一時的なトークンでAWSへのアクセス


アクセスキーのローテーション


IAM JSON


リソース制限


複数アカウントの取り違えを防ぐ

記事:


複数AWSアカウントの管理

# account1にIAM userがあるとする
aws configure --profile account1
cat ~/.aws/config
[account1]
output = json
region = ap-northeast-1

[account2]
output = json
region = ap-northeast-1
role_arn = arn:aws:iam::<account1 id>:role/role-admin
source_profile = account1

ハードウェアMFA


チュートリアル


IAM policy内で変数を使う


aws-mfa: 外部ツールが未対応でもMFAを使いたい

ansibleやterraformといった外部ツール自体がMFAに対応していない場合、MFAを必須にすると動作しなくなる。


STS(Security Token Service): 一時的セキュリティ認証情報


regional STS Endpointを使用する

記事:


AssumeRole: 複数のAWSアカウント間で権限を委譲する

一つのAWSアカウントにIAM userを作り、他のAWSアカウントではIAM roleにswitchできる。
多段も可能。login -> role-A -> role-B


アカウント名の取得

AWS_SRC_ACCOUNT=<src account>
AWS_ORG_ACCOUNT=<organization account>

aws organizations describe-account \
 --query 'Account.Name' \
 --account-id $(aws sts get-caller-identity --profile $AWS_SRC_ACCOUNT --query 'Account' --output text) \
 --output text \
 --profile $AWS_ORG_ACCOUNT

AWSアカウントIDの代わりにaliasを使う

IAMユーザのサインイン画面のURLはデフォルトアカウントIDだが、aliasが複数設定できる。 aliasを設定しても、accountIDのリンクは使える。


一時的なAccess Keyの発行


IAM Roleを設定できるユーザの作成

LambdaはIAMを触る強い権限が必要になる。そうするとAdminになってしまうが、それが嫌な場合。


ポリシーのテスト

APIによって、リソースが指定できる場合と、指定できない場合がある。


IAM Policy Simulator

jsonのままではAllow/Denyの挙動が把握しにくいのでシミュレータを使う。


ポリシーの例


switch role:複数AWSアカウントを切り替える


サポート用


IAMユーザが請求情報にアクセスできるように


請求情報だけにアクセスできるユーザを作成

  1. セキュリティの質問を設定
  2. AWS ウェブサイトへのアクセスのアクティベート は忘れがちなので注意
  3. IAM Groupを作成。例:AccountingGroup
    • role
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "aws-portal:ViewBilling"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "aws-portal:ViewUsage"
            ],
            "Resource": "*"
          }
        ]
      }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-11-05 (火) 12:51:30