AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する
2021/08/07
ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでAllow(許可)の例がないので、一応試しておきます。
SCP 構文にも記載があるように、Allow(許可)では、NotAction、Conditionが使えません。
Resourceも”*”のみです。
これに違反すると保存時に「The provided policy document does not meet the requirements of the specified policy type.」となりました。
## 環境
root->sandbox->Sandbox-nestに以下のSCPをアタッチしました。
この検証でSCPはEC2, S3, IAMを許可したAllowTestというSCPを作成しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "EC2:*", "S3:*", "IAM:*" ], "Resource": "*" } ] } |
目次
OUのSCP継承を確認する
rootにはすべてを許可するFullAWSAccessというAWS管理SCPがアタッチされています。
配下のOUに継承されています。
1 2 3 4 5 6 7 8 9 10 11 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] } |
sandboxには、IAMだけを許可するIAMFullをアタッチして、Sandbox-nestに継承しています。
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "IAM:*", "Resource": "*" } ] } |
Sandbox-nestに上記のAllowTestをアタッチして、sakenamidaアカウントを子として登録しています。
sakenamidaアカウントのIAMロールOrgRoleにはAWS管理ポリシーAdministraotrAccessを設定しています。
スイッチロールしてsakenamidaアカウントにクロスアカウントアクセスしてみます。
IAM以外はすべて拒否されました。
sandboxからの継承により、配下のOUではIAMしか許可されなくなったしまったのですね。
ありそうな継承を確認する
継承はどんどん権限が狭くなるほうが実際にありそうですね。
このような構成に変えました。
sandboxにアタッチしたIAM-S3-EC2-RDSポリシーは名前どおり、IAM, S3, EC2, RDSにフルアクセス権限を追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "EC2:*", "S3:*", "IAM:*", "RDS:*", ], "Resource": "*" } ] } |
下にいくほど権限が絞り込まれていきます。
IAMロールは面倒なのでAdministrtorAccessのままです。
スイッチロールしてsakenamidaアカウントにクロスアカウントアクセスしてみます。
S3にアクセスできました。
RDSにはアクセスできませんでした。
想定どおりでした。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Firewall Managerを設定して結果を確認
CloudFront対応のポリシーとして作成したかったので、Globalを選択し …
-
-
Amazon CloudWatch RUMはじめました
新機能 – Amazon CloudWatch RUM をご紹介 2021年12 …
-
-
Organizations組織でAWS SSOを有効にする
先日AWS Control Towerで環境を作ったら、自動でAWS SSOがで …
-
-
ParquetフォーマットのデータにS3 Select SQLを実行する
RDSスナップショットのS3エクスポート結果確認で出力したデータが、S3にPar …
-
-
Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する
EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …
-
-
AWS DeepLensセットアップの儀
AWS DeepLensのセットアップを開始します。 AWS DeepLensを …
-
-
試そうとしてたらSavings Plans買っちゃいました
Savings Plansの購入画面を確認していました。 画面遷移も確認しようと …
-
-
TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する
Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …
-
-
CloudFront用のAWS管理プレフィックスリストを使用しました
このブログでは、CloudFrontのカスタムヘッダーとALBのルーティングを組 …
-
-
AWS Lambda(Python)で生成した文字をAmazon Connectで音声を設定して発信する
Amazon Connectから発信する電話の音声を動的に設定します。 Lamb …