Share
Embed
Transcript
27 slides
-
┃Resource Control Policy (RCP) ‐ 組織内のリソースに対するアクセスを制限するポリシー ┃Service Control Policy (SCP)
‐ 組織内のIAMユーザーとロールの最大権限を制御するガードレールポリシー ┃Resource-based Policy ‐ リソースに直接アタッチするJSONポリシー ‐ プリンシパルがリソースに対してどのアクションを実行できるかを定義 ┃Identity-based Policy ‐ IAMユーザー、グループ、ロールにアタッチするJSONポリシー ‐ IDがどのリソースに対してどのアクションを実行できるかを定義 ポリシー評価理論 8 -
検証|ケース一覧 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 ロール引き受け + 操作実行が 両方成功するか -
検証|ケース一覧 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 セッションポリシーで一時的に 権限を制限できるか -
検証|例とするケース 13 No Identity Resource Boundary Session Deny eval 結果
確認内容 2 Allow Deny ー ー Yes Deny Resource-based Policy により 拒否されることを確認 ┃以下ケースについて検証したことを共有 ‐ 一連の検証は CLI を利用して実施 ‐ 検証用のまっさらな AWS アカウントを用意 -
検証手順|環境変数の設定 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" -
検証手順|初期リソース作成 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 -
検証手順|初期リソース作成 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') -
検証手順|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 -
検証手順|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 -
検証|テストユーザーで確認 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 -
おわりに|やり残していること 24 ┃わかっていないことがまだまだ多い ‐ Organizations による制御(RCP, SCP) ‐ IAM Permissions
Boundaries ‐ 資格試験から逃げている弊害? ┃評価状況を可視化するアプリを作ろうとしたが… ‐ 私のVibeではノリが足りず断念 ‐ CLI で作ってみたが志半ば感 -
おわりに|やり残していること 25 ┃わかっていないことがまだまだ多い ‐ Organizations による制御(RCP, SCP) ‐ IAM Permissions
Boundaries ‐ 資格試験から逃げている弊害? ┃評価状況を可視化するアプリを作ろうとしたが… ‐ 私のVibeではノリが足りず断念 ‐ CLI で作ってみたが志半ば感 -
おわりに 26 ┃ポリシー評価理論について CLI を用いて検証してみた ‐ S3へのアクセスを例として確認 ‐ 想定通りアクセスできないことを確認できた ┃あまり
CLI を使って確認作業をする機会がなかった のでいろいろ勉強になった ‐ ポリシーの設定方法など 認証周りの理解をより深めていきたい -
参考 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