AWS Organizations SCPがリソースベースのポリシーには影響しないことを確認
2021/07/22
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認するで設定したAWSアカウントsakenamidaで確認しました。
このAllowTestポリシーがアタッチされているOUにあるAWSアカウントです。
検証開始時点では、IAM, EC2, S3に対してフルアクセスの権限があります。
S3バケットポリシーでクロスアカウントアクセスしているロールにバケットとオブジェクトへのフルアクセスを設定したあとに、OUのSCPからS3フルアクセスを外します。
もう一つ、念のため、OUのSCPにS3 Denyのステートメントも追加して確認します。
目次
S3バケットポリシーの設定
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/OrgRole" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucketname/*", "arn:aws:s3:::bucketname" ] } ] } |
sakenamidaアカウントのS3バケットに上記のようなバケットポリシーを設定しました。
OrgRoleはスイッチロールしているIAMロールです。
OUのSCPからS3フルアクセスを外して確認
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "EC2:*", "IAM:*" ], "Resource": "*" } ] } |
OUのSCP AllowTestを上記のようにS3フルアクセスを外しました。
スイッチロールしてsakenamidaアカウントにクロスアカウントアクセスしました。
拒否されました。
arn:aws:iam::123456789012:role/OrgRoleは、対象アカウントのロールだったのでロールがSCPの影響を受けたということでしょうね。
組織外のアカウントユーザーをバケットポリシーで設定して確認してみました。
バケットにオブジェクトのアップロードなどできることが確認できました。
SCPはアカウント所有のバケットのバケットポリシーには影響しませんでした。
OUのSCPにS3 Denyのステートメントを追加して確認
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“EC2:“,
“IAM:”
],
“Resource”: “”
},
{
“Effect”: “Deny”,
“Action”: [
“S3:”
],
“Resource”: [
“arn:aws:s3:::bucketname/*”,
“arn:aws:s3:::bucketname”
]
}
]
}
OUのSCPに対象バケットへのS3アクションを拒否するステートメントを追加しました。
バケットにオブジェクトのアップロードなどできることが確認できました。
やはりSCPはアカウント所有のバケットのバケットポリシーには影響しませんでした。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
RDS + VPC + Lambda + API Gateway + CloudFront + WAF + ACMでAPIを構築する
RDSのMySQLの情報を与えられたリクエストをキーにしてjsonで返すAPIを …
-
-
AWS Cost Explorerの履歴を38ヶ月とリソース別コストを見られるように設定しました
AWS Cost Explorer がより詳細な履歴データの提供を開始 知らなか …
-
-
ALBの重み付けルーティングでカナリアリリースをしてみました
当ブログのAMIの更新と、ALBターゲットグループのヘルスチェックを変更したかっ …
-
-
Redmineの添付ファイルをS3に同期する
RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …
-
-
CloudWatch インテリジェントオペレーションでこのブログのログを調査してみました
CloudWatch インテリジェントオペレーションを設定しました。 設定 マネ …
-
-
Amazon Linux にnodejsとmongoDBをインストールする
EPEL リポジトリを利用してnodejsとnpmをインストールする [bash …
-
-
よくあるサーバーレスアーキテクチャで質問フォーム
この記事はServerless2 Advent Calendar 2018に参加 …
-
-
RDSスナップショットをS3にエクスポートする新機能を試そうかと思った
やったこと RDSスナップショットをS3にエクスポートできる、という新機能が追加 …
-
-
Aurora Serverless Data APIを有効にしてQuery Editorを使ってみました
Aurora ServerlessのMySQLでData APIを有効にして作成 …
-
-
MySQL WorkbenchからRDSに接続する
MySQL WorkbenchからAWS RDSのMySQLに接続するために、「 …

