2021/05/17

AWS サービスコントロールポリシー(SCP)について解説!使い方とポイントとは?

 
  

AWS サービスコントロールポリシー(SCP)について解説!使い方とポイントとは?

AWS SCP(Service Control Policy)とは、AWS Organizationsのアクセス管理機能です。AWS Organizationsには既存の機能としてIAMポリシーがありますが、AWS SCPはアカウントの一括と階層的な管理において優れた効果を発揮します。 SCPとIAMでアクセス管理の方式は異なるものであり、ポリシーを併用することでアカウントの管理をより手軽で精密なものに実現することが可能です。 AWS SCPの導入や設定はほとんどが操作の単純なもので、機能セットの設定に変更が必要な時だけ切り替えに手間がかかる場合があります。 アクセス管理のためにAWS SCPのポリシーを設定するときには、上位の階層でアタッチしたポリシーがすべて下位の階層へと継承されることから、暗黙的な拒否により設計意図とは異なる厳しい制限がアカウントに付与されないよう注意が必要です。

AWS SCPとは?

AWS Organizationsでアカウントのアクセスを管理するポリシーの一種で、権限の一元管理に優れた機能です。 アクセス管理のポリシーにはSCPのほかにIAMがあり、併用することできめ細かな制御を実現します。IAMとアクセス制限が異なる場合、アクセスが許可されるのは両方で許可されている場合だけです。 暗黙的な拒否(Deny)については、IAMと同じ仕様であることから、意図しないアクセス制限をかけてしまわないよう注意が必要になります。

AWS SCPによるアクセス管理とは?

許可リスト、あるいは拒否リストのポリシーを設定することにより、AWS Organizationsにおいてアカウントのアクセスを管理します。 AWS SCPのポリシーは個別のアカウント、あるいはOU(Organizational Unit)ごとにアタッチとデタッチが可能です。 この拒否リストと許可リストはOUの階層構造で上位から下位へと継承されるため、OUによるアクセスの管理はSCPの採用でスピーディーに実現できます。

IAMとSCPの違い

IAMはアカウントあるいはロールなどでアクセスを管理します。SCPではアカウントあるいはOUごとにアクセスを管理し、またポリシーがOUの上位階層から下位階層へ継承されるという差異のある方式です。 ルートユーザーについてIAMでは制限できませんが、SCPでは制限ができます。また、SCPはアクセスの制限に向いている機能で、アクセスの許可についてはIAMを使って設定することが有効です。

SCPとIAMでアクセス許可が異なる場合

2つのポリシーでアクセスの権限が異なる場合、両方で許可された場合だけアクセスが許可されます。 どちらかのポリシーで明示的に拒否された場合、あるいは暗黙的に拒否されている場合は、条件を満たさないことからアクセス許可がないものとして拒否される設定です。 SCPとIAMのどちらか片方で暗黙的に拒否されていれば、もう片方で明示的に許可していても拒否される点については注意が必要になります。 ポリシー設定で暗黙的な拒否の見落としがあった場合、意図とは異なるアクセス制限がかかってしまうからです。

拒否リストと許可リストを使う上での注意

AWS SCPでアカウントのアクセスを管理するときには、ポリシーの暗黙的な拒否について注意が必要です。 特定の機能について明示的な拒否だけを設定したSCPのポリシーをOUにアタッチすると、ほかの機能については暗黙的な拒否とされることから、結果的に全ての機能がアクセス拒否されることになります。 この場合はOUにポリシーをアタッチしたことから、OUの枝葉にあたる全てのアカウントとOUがアクセス拒否されてしまうのです。 OUの階層が上位であればあるほど、影響を与えるアカウントの数が多くなることから、ポリシーを設定するときには、下位のOUで問題がないことを確認することで、不適切なポリシーによってアクセスが拒否されてしまうことを未然に防ぐことができます。

AWS SCPの使い方

アクセス管理のためにAWS SCPを導入して設定する作業は、AWS Organizationsの機能セットが”All Feature”で設定されていれば簡単に着手できます。 AWS SCPのポリシー設定やアタッチなどはAWS Organizationsのコンソールから行えますが、アカウントやOUへのアタッチなどといった一部の操作は対象となるアカウントの設定からも可能です。

AWS SCPの導入に必要な設定

AWS OrganizationsにSCPを導入するためには、機能セットが”All Feature”で設定されている必要があります。 機能設定の変更は処理が煩雑になりがちであることから、AWS SCPを導入する可能性がある場合は事前にOrganizationsの機能設定を”All Feature”としておくとスムーズな設定が可能です。

AWS SCPの導入方法

AWS OrganizationsのコンソールでSCPを有効化することで、AWS SCPによるアクセス管理を開始できます。 AWS SCPを有効化した状態では拒否リストも許可リストもないことから、導入によるアカウントのアクセス権への影響は生じないので有効化による影響の考慮は不要です。

AWS SCPのポリシー設定方法

AWS SCPのポリシー設定は、AWS Organizationsのコンソールで行えます。 コンソールで行えるのはポリシーの作成、更新、削除といった設定の基本的な機能です。また、コンソールからアカウントやOUへポリシーのアタッチやデタッチができます。ポリシーのアタッチやデタッチはアカウントやOUの設定からも可能です。

AWS SPCを使う上でのポイントは?

OU階層構造を元にSPCのポリシーは設定内容を継承します。このときに暗黙的な否定が対象とする機能を意識して設計しなければ、意図していないアクセス制限をアカウントにかけてしまうのです。 特にOUの階層が深くなるほど、見落とされた暗黙的な否定によって全てのアクセスが拒否されてしまうリスクが生じます。

AWS SCPの継承

AWS SCPのポリシーはOUにアタッチすると、より下位の階層にあるOUやアカウントにアタッチしたポリシーの設定が継承されます。 組織ルートにAWS SCPのポリシーをアタッチすると、ルート以下にあるすべてのOUやアカウントに継承が行われるため、不必要な設定が継承されないよう階層を意識したポリシーの設定が重要です。

暗黙的な否定がポリシーに与える影響

AWS SCPでは組織ルートや階層上位のOUにおいて明示的に全ての機能を許可していても、階層下位のOUやアカウントで暗黙的な否定があれば、その否定の範囲だけ機能が制限されるのです。 IAMのポリシーでも重要ですが、暗黙的な否定による影響はSCPにおいても受けます。 例えばアカウントに明示的な機能の否定だけ設定したポリシーをアタッチした場合、暗黙的にほかの機能もすべて否定されます。

明示的な許可と明示的な否定を組み合わせた場合

AWS SCPで明示的な許可と明示的な否定を組み合わせた場合、明示的に否定されなかった機能でなおかつ明示的な許可のある機能を除く部分が、すべて暗黙的な否定の対象となります。 OUの階層が多層の場合、暗黙的な否定が組み合わさることですべての機能が否定される可能性があることから、ポリシーの設計には注意が必要です。

AWS SCPでアクセス管理を素早く精密なものに!

OUにアタッチすることでアカウントのアクセスをまとめて許可と否定できるのがAWS SCPの導入によるメリットです。 本記事ではSCPとIAMの違いについて解説し、また導入方法の解説と、ポイントとなる部分についてご紹介しました。 当面はアカウントの数が少ないサービスであっても、AWS SCPでは組織単位の管理ができるというメリットがあることから、アクセス管理の方法として検討してみてください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】