Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ポリシーの評価理論について CLI で遊んでみた

Avatar for ryu-ki ryu-ki
November 13, 2025
34

ポリシーの評価理論について CLI で遊んでみた

Avatar for ryu-ki

ryu-ki

November 13, 2025
Tweet

More Decks by ryu-ki

Transcript

  1. ┃Resource Control Policy (RCP) ‐ 組織内のリソースに対するアクセスを制限するポリシー ┃Service Control Policy (SCP)

    ‐ 組織内のIAMユーザーとロールの最大権限を制御するガードレールポリシー ┃Resource-based Policy ‐ リソースに直接アタッチするJSONポリシー ‐ プリンシパルがリソースに対してどのアクションを実行できるかを定義 ┃Identity-based Policy ‐ IAMユーザー、グループ、ロールにアタッチするJSONポリシー ‐ IDがどのリソースに対してどのアクションを実行できるかを定義 ポリシー評価理論 8
  2. 検証|ケース一覧 11 No Identity Resource Boundary Session Deny eval 結果

    確認内容 1 Allow なし ー ー No Allow Identity-based Policy だけで アクセス許可が機能するか 2 Allow Deny ー ー Yes Deny Resource-based Policy により 拒否されることを確認 3 Deny Allow ー ー Yes Deny Identity-based Policy により 拒否されることを確認 4 Allow Allow ー ー No Allow ロール引き受け + 操作実行が 両方成功するか
  3. 検証|ケース一覧 12 No Identity Resource Boundary Session Deny eval 結果

    確認内容 5 ー Deny ー ー Yes Deny 信頼ポリシーで Deny されると AssumeRole 自体が失敗するか 6 Allow Deny ー ー Yes Deny AssumeRole 成功後、 操作が Deny で失敗するか 7 Allow ー Deny ー Yes Deny IAM Boundary で権限を 制限できるか 8 ー ー ー Deny Yes Deny セッションポリシーで一時的に 権限を制限できるか
  4. 検証|例とするケース 13 No Identity Resource Boundary Session Deny eval 結果

    確認内容 2 Allow Deny ー ー Yes Deny Resource-based Policy により 拒否されることを確認 ┃以下ケースについて検証したことを共有 ‐ 一連の検証は CLI を利用して実施 ‐ 検証用のまっさらな AWS アカウントを用意
  5. 検証手順|環境変数の設定 14 # プロファイルを環境変数に設定 export AWS_PROFILE=policy-demo # アカウントIDを環境変数に設定 export AWS_ACCOUNT_ID=$(aws

    sts get-caller-identity --query Account --output text) export TEST_USER="PolicyLabTestUser" export TEST_ROLE="PolicyLabTestRole" export BUCKET_NAME="policy-lab-bucket-${AWS_ACCOUNT_ID}" export REGION="ap-northeast-1"
  6. 検証手順|初期リソース作成 15 # Step 1: テストユーザー作成 aws iam create-user --user-name

    $TEST_USER # Step 2: アクセスキー作成 aws iam create-access-key --user-name $TEST_USER > test-credentials.json
  7. 検証手順|初期リソース作成 16 # Step 3: S3バケット作成 aws s3api create-bucket ¥

    --bucket $BUCKET_NAME ¥ --region $REGION ¥ --create-bucket-configuration LocationConstraint=$REGION # Step 4: テスト用認証情報の設定 export TEST_ACCESS_KEY=$(cat test-credentials.json | jq -r '.AccessKey.AccessKeyId') export TEST_SECRET_KEY=$(cat test-credentials.json | jq -r '.AccessKey.SecretAccessKey')
  8. 検証手順|Identity-based Policy 設定 17 cat > policies/policy-2.json << EOF {

    "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::${BUCKET_NAME}" }] } EOF aws iam put-user-policy ¥ --user-name $TEST_USER ¥ --policy-name "2-IdentityAllow" ¥ --policy-document file://policies/policy-2.json
  9. 検証手順|Resource-based Policy 設定 18 cat > policies/bucket-policy-2.json << EOF {

    "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:user/${TEST_USER}" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::${BUCKET_NAME}" }] } EOF aws s3api put-bucket-policy ¥ --bucket $BUCKET_NAME ¥ --policy file://policies/bucket-policy-2.json
  10. 検証|テストユーザーで確認 20 AWS_ACCESS_KEY_ID=$TEST_ACCESS_KEY ¥ AWS_SECRET_ACCESS_KEY=$TEST_SECRET_KEY ¥ aws s3 ls s3://$BUCKET_NAME

    An error occurred (AccessDenied) when calling the ListObjectsV2 operation: User: arn:aws:iam::xxx:user/PolicyLabTestUser is not authorized to perform: s3:ListBucket on resource: "arn:aws:s3:::policy-lab-bucket-xxx" with an explicit deny in a resource-based policy
  11. おわりに|やり残していること 24 ┃わかっていないことがまだまだ多い ‐ Organizations による制御(RCP, SCP) ‐ IAM Permissions

    Boundaries ‐ 資格試験から逃げている弊害? ┃評価状況を可視化するアプリを作ろうとしたが… ‐ 私のVibeではノリが足りず断念 ‐ CLI で作ってみたが志半ば感
  12. おわりに|やり残していること 25 ┃わかっていないことがまだまだ多い ‐ Organizations による制御(RCP, SCP) ‐ IAM Permissions

    Boundaries ‐ 資格試験から逃げている弊害? ┃評価状況を可視化するアプリを作ろうとしたが… ‐ 私のVibeではノリが足りず断念 ‐ CLI で作ってみたが志半ば感
  13. おわりに 26 ┃ポリシー評価理論について CLI を用いて検証してみた ‐ S3へのアクセスを例として確認 ‐ 想定通りアクセスできないことを確認できた ┃あまり

    CLI を使って確認作業をする機会がなかった のでいろいろ勉強になった ‐ ポリシーの設定方法など 認証周りの理解をより深めていきたい
  14. 参考 27 ┃単一のアカウント内のリクエストのポリシー評価 ‐ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_evaluatio n-logic_policy-eval-basics.html ┃ポリシーの評価理論 ‐ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_evaluatio n-logic.html

    ┃IAM のドキュメント履歴 ‐ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/document-history.html ┃新しくなった IAM 評価論理フローチャートをひとしきり愛でてみた | DevelopersIO ‐ https://dev.classmethod.jp/articles/new-policy-evaluation-logic-flow-chart/ ┃【入門編】AWSにおけるアクセスポリシーの評価ロジックを整理してみる - サーバーワークスエンジニアブログ ‐ https://blog.serverworks.co.jp/iam/policy/evaluation-logic