AWS Organizationsでマルチアカウント環境を構築した後、次に必要なのが組織全体のセキュリティガードレールの設計です。サービスコントロールポリシー(SCP)は、組織内のアカウントに対して「できること」の上限を設定する強力なツールです。本記事では、SCPの概念から実践的な使用パターン、設計のベストプラクティスまでを体系的に解説します。

サービスコントロールポリシー(SCP)とは

サービスコントロールポリシー(Service Control Policy、SCP)は、AWS Organizations内のアカウントやOU(組織単位)に対して、利用可能なAWSサービスとアクションの最大範囲を定義するポリシーです。

SCPの基本概念

SCPは「許可を与える」ものではなく、「許可の上限を設定する」ものです。アカウント内のIAMユーザーやロールが実際にアクションを実行するには、SCPで許可されている範囲内で、かつIAMポリシーでも明示的に許可されている必要があります。

flowchart TB
    subgraph "権限の関係"
        SCP[SCP<br/>許可の上限を設定]
        IAM[IAMポリシー<br/>実際の権限を付与]
        RESULT[実行可能な操作<br/>両方の共通部分]
    end
    
    SCP --> RESULT
    IAM --> RESULT

この概念を「フィルター」に例えると理解しやすくなります。SCPは組織レベルのフィルターであり、IAMポリシーによる許可がSCPのフィルターを通過した場合にのみ、アクションが許可されます。

SCPとIAMポリシーの違い

SCPとIAMポリシーは構文が似ていますが、役割と適用範囲が大きく異なります。

比較項目 SCP IAMポリシー
適用対象 アカウント、OU IAMユーザー、ロール、グループ
役割 許可の上限(ガードレール) 実際の権限付与
効果 許可を制限するが、付与はしない 許可を付与する
適用範囲 アカウント内のすべてのプリンシパル 指定されたプリンシパルのみ
管理者 Organizations管理者 アカウント管理者

SCPの特徴と制約

SCPには以下の特徴と制約があります。

適用対象

  • メンバーアカウントに適用される
  • 管理アカウントには適用されない(重要)
  • ルートユーザーを含むすべてのプリンシパルに影響

適用されないケース

  • 管理アカウント自体
  • サービスリンクロール
  • リソースベースのポリシーで許可された外部プリンシパルからのアクセス
flowchart TB
    subgraph "SCPの適用範囲"
        direction TB
        subgraph "適用される"
            M1[メンバーアカウントの<br/>IAMユーザー]
            M2[メンバーアカウントの<br/>IAMロール]
            M3[メンバーアカウントの<br/>ルートユーザー]
        end
        
        subgraph "適用されない"
            MA[管理アカウント]
            SLR[サービスリンクロール]
            EXT[外部からの<br/>リソースベースアクセス]
        end
    end

SCPの継承と評価ロジック

SCPの効果を正しく理解するには、継承の仕組みと評価ロジックを把握する必要があります。

継承の仕組み

SCPは、組織のルートからOU、そしてアカウントへと階層的に継承されます。

flowchart TB
    ROOT[Root<br/>SCP: FullAWSAccess]
    
    OU1[Production OU<br/>SCP: DenyRiskyServices]
    OU2[Development OU<br/>SCP: AllowDevelopment]
    
    ACC1[本番アカウント A<br/>SCP: DenyDeleteLogs]
    ACC2[本番アカウント B]
    ACC3[開発アカウント]
    
    ROOT --> OU1
    ROOT --> OU2
    OU1 --> ACC1
    OU1 --> ACC2
    OU2 --> ACC3

本番アカウント Aには以下のSCPが適用されます。

  1. Root の FullAWSAccess
  2. Production OU の DenyRiskyServices
  3. アカウント自身の DenyDeleteLogs

有効なポリシーの計算

継承されたすべてのSCPの共通部分(AND条件)が、そのアカウントで許可される操作の上限となります。

flowchart LR
    subgraph "継承されたSCP"
        P1[Root SCP<br/>すべて許可]
        P2[OU SCP<br/>特定サービス拒否]
        P3[アカウント SCP<br/>特定アクション拒否]
    end
    
    P1 --> |AND| EFFECTIVE[有効なポリシー<br/>共通部分のみ許可]
    P2 --> |AND| EFFECTIVE
    P3 --> |AND| EFFECTIVE

評価ロジックの詳細

AWSのポリシー評価において、SCPは以下の位置で評価されます。

flowchart TD
    A[リクエスト開始] --> B{明示的なDenyが<br/>いずれかのポリシーに<br/>あるか?}
    B -->|Yes| C[アクセス拒否]
    B -->|No| D{すべての継承SCPで<br/>許可されているか?}
    D -->|No| C
    D -->|Yes| E{Permission Boundary<br/>で許可されているか?}
    E -->|No| C
    E -->|Yes| F{IAMポリシーで<br/>許可されているか?}
    F -->|No| G{リソースベースポリシーで<br/>許可されているか?}
    G -->|No| C
    G -->|Yes| H[アクセス許可]
    F -->|Yes| H

SCPは、Permission BoundaryやIAMポリシーよりも先に評価されます。SCPで拒否されているアクションは、他のポリシーで許可されていても実行できません。

FullAWSAccessポリシー

Organizations作成時、デフォルトでFullAWSAccessポリシーがルートにアタッチされます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
}

このポリシーは「すべてを許可する」という意味ではなく、「SCPによる制限を追加しない」という意味です。このポリシーを削除すると、すべてのアクションが暗黙的に拒否されます。

SCP設計のアプローチ

SCPの設計には、主に2つのアプローチがあります。

許可リスト(Allow List)方式

許可するサービスとアクションを明示的にリストし、それ以外をすべて拒否するアプローチです。

flowchart LR
    subgraph "許可リスト方式"
        DEFAULT[デフォルト: すべて拒否]
        ALLOW[許可リストに<br/>あるもののみ許可]
    end
    
    DEFAULT --> ALLOW

メリット

  • セキュリティが非常に高い
  • 新しいサービスはデフォルトで拒否される

デメリット

  • 管理が複雑
  • 新しいサービス利用時に都度更新が必要
  • FullAWSAccessポリシーの削除が必要

実装例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSpecificServices",
            "Effect": "Allow",
            "Action": [
                "ec2:*",
                "s3:*",
                "rds:*",
                "lambda:*",
                "cloudwatch:*",
                "logs:*"
            ],
            "Resource": "*"
        }
    ]
}

拒否リスト(Deny List)方式

デフォルトですべてを許可し、禁止したいサービスやアクションを明示的に拒否するアプローチです。

flowchart LR
    subgraph "拒否リスト方式"
        DEFAULT[デフォルト: すべて許可<br/>FullAWSAccess]
        DENY[拒否リストに<br/>あるものを除外]
    end
    
    DEFAULT --> DENY

メリット

  • 管理がシンプル
  • 新しいサービスを柔軟に利用可能
  • 段階的な導入が容易

デメリット

  • 新しいサービスがデフォルトで許可される
  • 想定外のサービス利用のリスク

推奨: ほとんどの組織では、拒否リスト方式から始めることを推奨します。FullAWSAccessをベースに、禁止事項をSCPで追加していきます。

よく使われるSCPパターン

実践的なSCPの使用パターンを紹介します。これらは組み合わせて使用することで、組織のセキュリティ要件を満たすガードレールを構築できます。

パターン1: リージョン制限

特定のリージョンでのみAWSサービスの使用を許可するSCPです。コンプライアンス要件やデータ主権の観点で重要です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyAllOutsideAllowedRegions",
            "Effect": "Deny",
            "NotAction": [
                "a]4b:*",
                "acm:*",
                "aws-marketplace-management:*",
                "aws-marketplace:*",
                "aws-portal:*",
                "budgets:*",
                "ce:*",
                "chime:*",
                "cloudfront:*",
                "config:*",
                "cur:*",
                "directconnect:*",
                "ec2:DescribeRegions",
                "ec2:DescribeTransitGateways",
                "ec2:DescribeVpnGateways",
                "fms:*",
                "globalaccelerator:*",
                "health:*",
                "iam:*",
                "importexport:*",
                "kms:*",
                "mobileanalytics:*",
                "networkmanager:*",
                "organizations:*",
                "pricing:*",
                "route53:*",
                "route53domains:*",
                "route53-recovery-cluster:*",
                "route53-recovery-control-config:*",
                "route53-recovery-readiness:*",
                "s3:GetAccountPublic*",
                "s3:ListAllMyBuckets",
                "s3:ListMultiRegionAccessPoints",
                "s3:PutAccountPublic*",
                "shield:*",
                "sts:*",
                "support:*",
                "trustedadvisor:*",
                "waf-regional:*",
                "waf:*",
                "wafv2:*",
                "wellarchitected:*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "ap-northeast-1",
                        "ap-northeast-3"
                    ]
                }
            }
        }
    ]
}

NotActionで除外しているのは、グローバルサービス(IAM、Route 53、CloudFrontなど)です。これらはリージョンに依存せず、除外しないと正常に動作しません。

パターン2: 特定サービスの禁止

リスクの高いサービスや、組織で使用を禁止しているサービスをブロックします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyRiskyServices",
            "Effect": "Deny",
            "Action": [
                "lightsail:*",
                "gamelift:*",
                "appstream:*",
                "mechanicalturk:*",
                "ground-station:*"
            ],
            "Resource": "*"
        }
    ]
}

パターン3: ルートユーザーの使用禁止

メンバーアカウントでのルートユーザー使用を禁止し、IAMユーザーまたはロールの使用を強制します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyRootUser",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:PrincipalArn": "arn:aws:iam::*:root"
                }
            }
        }
    ]
}

パターン4: CloudTrailの保護

監査ログを改ざんや削除から保護するSCPです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyCloudTrailModification",
            "Effect": "Deny",
            "Action": [
                "cloudtrail:DeleteTrail",
                "cloudtrail:StopLogging",
                "cloudtrail:UpdateTrail",
                "cloudtrail:PutEventSelectors"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::*:role/OrganizationAdminRole"
                    ]
                }
            }
        }
    ]
}

Conditionを使用して、特定の管理者ロールからの操作は許可しています。

パターン5: S3パブリックアクセスの禁止

S3バケットの意図しないパブリック公開を防止します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyS3PublicAccess",
            "Effect": "Deny",
            "Action": [
                "s3:PutBucketPublicAccessBlock",
                "s3:DeletePublicAccessBlock"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::*:role/SecurityAdminRole"
                    ]
                }
            }
        },
        {
            "Sid": "DenyS3PublicACLs",
            "Effect": "Deny",
            "Action": [
                "s3:PutBucketAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read",
                        "public-read-write",
                        "authenticated-read"
                    ]
                }
            }
        }
    ]
}

パターン6: VPCの保護

デフォルトVPCの削除やインターネットゲートウェイの操作を制限します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyVPCChanges",
            "Effect": "Deny",
            "Action": [
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:CreateVpcPeeringConnection",
                "ec2:AcceptVpcPeeringConnection"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::*:role/NetworkAdminRole"
                    ]
                }
            }
        }
    ]
}

パターン7: 組織離脱の禁止

メンバーアカウントが組織から離脱することを防止します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyLeaveOrganization",
            "Effect": "Deny",
            "Action": "organizations:LeaveOrganization",
            "Resource": "*"
        }
    ]
}

パターン8: 必須タグの強制

リソース作成時に特定のタグを必須とするSCPです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyEC2WithoutTags",
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "Null": {
                    "aws:RequestTag/CostCenter": "true"
                }
            }
        },
        {
            "Sid": "DenyEC2WithoutEnvironmentTag",
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "Null": {
                    "aws:RequestTag/Environment": "true"
                }
            }
        }
    ]
}

パターン9: 高額インスタンスタイプの制限

コスト管理のため、高額なEC2インスタンスタイプの起動を制限します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyLargeInstances",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "ec2:InstanceType": [
                        "*.metal",
                        "*.24xlarge",
                        "*.16xlarge",
                        "*.12xlarge",
                        "p3*",
                        "p4*",
                        "x1*",
                        "x2*"
                    ]
                }
            }
        }
    ]
}

パターン10: 暗号化の強制

EBSボリュームの暗号化を強制するSCPです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyUnencryptedVolumes",
            "Effect": "Deny",
            "Action": "ec2:CreateVolume",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "false"
                }
            }
        },
        {
            "Sid": "DenyUnencryptedVolumeInRunInstances",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:volume/*",
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "false"
                }
            }
        }
    ]
}

SCPの作成と適用手順

SCPを作成し、組織に適用する手順を解説します。

マネジメントコンソールでの作成

  1. AWS Organizationsコンソールを開く
  2. 左側のナビゲーションで「ポリシー」を選択
  3. 「サービスコントロールポリシー」を選択
  4. 「ポリシーを作成」をクリック
  5. ポリシー名、説明、JSONを入力
  6. 「ポリシーを作成」をクリック

AWS CLIでの作成

1
2
3
4
5
6
# SCPの作成
aws organizations create-policy \
  --name "DenyRiskyServices" \
  --description "Deny access to risky AWS services" \
  --type SERVICE_CONTROL_POLICY \
  --content file://deny-risky-services.json

SCPのアタッチ

作成したSCPをOUまたはアカウントにアタッチします。

1
2
3
4
5
6
7
8
9
# OUへのアタッチ
aws organizations attach-policy \
  --policy-id p-xxxxxxxxxx \
  --target-id ou-xxxx-xxxxxxxx

# アカウントへのアタッチ
aws organizations attach-policy \
  --policy-id p-xxxxxxxxxx \
  --target-id 123456789012

SCPの確認

現在適用されているSCPを確認します。

1
2
3
4
5
6
7
8
# ターゲットにアタッチされているポリシーの一覧
aws organizations list-policies-for-target \
  --target-id ou-xxxx-xxxxxxxx \
  --filter SERVICE_CONTROL_POLICY

# ポリシーの内容を表示
aws organizations describe-policy \
  --policy-id p-xxxxxxxxxx

SCP設計のベストプラクティス

効果的なSCPを設計するためのベストプラクティスを紹介します。

段階的な導入

SCPは即座に効果を発揮するため、慎重に導入する必要があります。

flowchart LR
    S1[Policy Staging OU<br/>でテスト] --> S2[Sandbox OU<br/>に適用]
    S2 --> S3[Development OU<br/>に適用]
    S3 --> S4[Production OU<br/>に適用]
  1. Policy Staging OUで新しいSCPをテスト
  2. Sandbox OUで影響範囲を確認
  3. Development OUで実運用に近い環境でテスト
  4. Production OUに本番適用

ドライラン的なテスト

SCPをアタッチする前に、CloudTrailログを分析して影響を予測します。

1
2
3
4
5
# 直近7日間のAPI呼び出しを分析(例:lightsailの使用状況)
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=EventSource,AttributeValue=lightsail.amazonaws.com \
  --start-time $(date -d '7 days ago' -Iseconds) \
  --end-time $(date -Iseconds)

緊急時の除外ロール

すべてのSCPには、緊急時に使用できる除外ロール(Break Glass Role)を設定することを推奨します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenySomething",
            "Effect": "Deny",
            "Action": "...",
            "Resource": "*",
            "Condition": {
                "StringNotLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::*:role/BreakGlassRole",
                        "arn:aws:iam::*:role/OrganizationAdminRole"
                    ]
                }
            }
        }
    ]
}

命名規則とバージョン管理

SCPには一貫した命名規則を適用し、バージョン管理システムで管理します。

命名パターン 説明
scp-deny-[対象] 特定のアクションを拒否 scp-deny-risky-services
scp-require-[条件] 特定の条件を必須化 scp-require-encryption
scp-restrict-[対象] 対象の範囲を制限 scp-restrict-regions

バージョン管理の例(Gitリポジトリ構成)

scp-policies/
├── deny/
│   ├── scp-deny-risky-services.json
│   ├── scp-deny-root-user.json
│   └── scp-deny-leave-organization.json
├── require/
│   ├── scp-require-encryption.json
│   └── scp-require-tags.json
├── restrict/
│   ├── scp-restrict-regions.json
│   └── scp-restrict-instance-types.json
└── README.md

SCPのサイズ制限への対応

SCPには5,120文字のサイズ制限があります。大きなポリシーは分割が必要です。

制限項目
ポリシーの最大サイズ 5,120文字
ルートまたはOUにアタッチできる最大SCP数 5個
アカウントに直接アタッチできる最大SCP数 5個

対処法

  • 複数のSCPに分割する
  • 不要な空白を削除してコンパクトにする
  • 類似したステートメントをワイルドカードで統合

OU構造との連携

SCPはOU構造と密接に連携させて設計します。

flowchart TB
    ROOT[Root<br/>SCP: 基本ガードレール<br/>・組織離脱禁止<br/>・CloudTrail保護]
    
    SEC[Security OU<br/>SCP: 最小限の制限]
    INFRA[Infrastructure OU<br/>SCP: ネットワーク操作許可]
    
    WORKLOAD[Workloads OU<br/>SCP: 標準的な制限<br/>・リージョン制限<br/>・高額インスタンス制限]
    
    PROD[Production OU<br/>SCP: 厳格な制限<br/>・変更制限]
    DEV[Development OU<br/>SCP: 緩やかな制限]
    
    ROOT --> SEC
    ROOT --> INFRA
    ROOT --> WORKLOAD
    
    WORKLOAD --> PROD
    WORKLOAD --> DEV

SCPのトラブルシューティング

SCPに関する問題の診断と解決方法を解説します。

よくある問題と解決策

問題1: 意図しないアクションが拒否される

flowchart TD
    A[アクションが拒否された] --> B{SCPが原因か<br/>確認}
    B -->|確認方法| C[IAM Policy Simulator<br/>で検証]
    C --> D{SCP違反?}
    D -->|Yes| E[SCPの見直し]
    D -->|No| F[IAMポリシーの確認]

確認手順

  1. CloudTrailでエラーイベントを確認
  2. IAM Policy Simulatorでシミュレーション
  3. 継承されているすべてのSCPを確認
  4. NotActionやConditionの意図しない影響を確認

問題2: グローバルサービスが使用できない

リージョン制限SCPでグローバルサービスを除外し忘れた場合に発生します。IAM、Route 53、CloudFrontなどはNotActionで除外が必要です。

問題3: SCPの変更が反映されない

SCPの変更は通常即座に反映されますが、キャッシュの影響で数分かかる場合があります。数分待ってから再試行してください。

デバッグ用のCloudTrailクエリ

CloudTrail Lakeを使用してSCP違反を分析できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
SELECT
    eventTime,
    eventSource,
    eventName,
    userIdentity.arn,
    errorCode,
    errorMessage
FROM
    event_data_store_id
WHERE
    errorCode = 'AccessDenied'
    AND errorMessage LIKE '%SCP%'
    AND eventTime > '2026-01-01'
ORDER BY
    eventTime DESC
LIMIT 100

SCPとControl Towerの統合

AWS Control Towerを使用している場合、SCPはガードレールの一部として自動管理されます。

Control Towerのガードレール

Control Towerは、SCPを「予防的ガードレール」として使用します。

ガードレールタイプ 実装方法
予防的(Preventive) SCP リージョン制限、CloudTrail保護
検出的(Detective) AWS Config Rules 暗号化されていないS3の検出
プロアクティブ CloudFormation Hooks デプロイ時の検証

Control TowerのSCPとカスタムSCPの共存

Control Towerが管理するSCPとカスタムSCPは共存できます。ただし、以下の点に注意が必要です。

  • Control Towerが管理するSCPは手動で変更しない
  • カスタムSCPはControl Towerの管理外のOUに適用
  • 競合を避けるため、役割を明確に分離

まとめ

サービスコントロールポリシー(SCP)は、AWS Organizationsにおける強力なセキュリティガードレールです。本記事で解説した内容を振り返ります。

  • SCPは許可の上限を設定するフィルターであり、権限を付与するものではない
  • 継承ロジックにより、ルートからOUを経由してアカウントに適用される
  • 拒否リスト方式から始め、段階的にガードレールを強化することを推奨
  • よく使われるパターン(リージョン制限、ルートユーザー禁止、CloudTrail保護など)を組み合わせて使用
  • 段階的な導入とPolicy Staging OUでのテストが重要
  • 緊急時の除外ロールを必ず設定しておく

SCPを効果的に活用することで、組織全体のセキュリティベースラインを確立し、コンプライアンス要件を満たすことができます。次の記事では、タグポリシーとバックアップポリシーを使用した組織全体のガバナンス強化について解説します。

参考リンク