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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる
MySQLのデータの可視化にAmazon Elasticsearch Servi …
-
-
DynamoDBテーブル項目をS3にエクスポート
DynamoDBテーブルを一時テーブルとして使っていて、毎回使い捨てしてます。 …
-
-
CloudFormationで起動テンプレートのバージョン更新をした際にAuto ScalingのEC2インスタンスを置き換える
やりたいこと タイトルのとおり、起動テンプレートのバージョン変更(AMIの置換) …
-
-
PyCharmにAWS Tool kitをインストールしてサンプルのLambda関数をデプロイして実行しました
この記事はJetBrainsIDE Advent Calendar 2018に参 …
-
-
AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)
mauticをAmazon LinuxとNginx,MySQL on RDSにイ …
-
-
AWS Systems Manager セッションマネージャを使用するために必要な設定
AWS Systems Manager セッションマネージャを使用するために必要 …
-
-
Amazon Linux2のジャンボフレーム
ユーザーガイドのEC2 インスタンスのネットワークの最大送信単位 (MTU)を試 …
-
-
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する
ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …
-
-
WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する
当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Am …
-
-
RocketChatの匿名登録時のtoo many requestsエラー対応
匿名ユーザー登録時のtoo many requestsエラー RocketCha …