サービスコントロールポリシーの例 - AWS Organizations

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サービスコントロールポリシーの例

このトピックで表示されているサービスコントロールポリシー (SCP) の例は、情報提供のみを目的としています。

これらの例を使用する前に

組織内でこれらの SCP 例の使用を開始する前に、次を実行します。

  • お客様に特有の要件に応じて SCP を慎重に確認し、カスタマイズします。

  • 使用する AWS サービスを使用して、環境内の SCP を徹底的にテストします。

    このセクションのポリシーの例は、SCPの実装と使用を示しています。彼らはない公式の AWS 推奨またはベストプラクティスとして解釈され、表示されているとおりに正確に実装されることを意図しています。お客様の環境のビジネス要件を解決するために、その適合性について拒否ベースのポリシーを慎重にテストすることは、お客様の責任です。拒否ベースのサービスコントロールポリシーは、必要な例外をポリシーに追加しない限り、AWS サービスの使用を意図せず制限またはブロックする可能性があります。このような例外の例については、不要な &AWS; リージョンへのアクセスをブロックするルールからグローバルサービスを免除する最初の例を参照してください。

  • SCP はすべてのユーザーとロールに影響することを忘れないでくださいが関連付けられているすべてのアカウントで。

ヒント

次を使用できます。サービスの最終アクセス時間データIAM必要な AWS サービスのみにアクセスを制限して SCP を更新して、必要な AWS サービスのみにアクセスを制限します。詳細については、「」を参照してください。Organizations サービスの最終アクセス時間データの表示()IAM ユーザーガイド

次の各種ポリシーは、「拒否リストポリシー」戦略の例です。拒否リストポリシーは、影響を受けるアカウントの承認済みアクションを許可する他のポリシーと合わせてアタッチする必要があります。たとえば、デフォルトの FullAWSAccess ポリシーは、アカウントによるすべてのサービスの使用を許可します。このポリシーは、デフォルトによって、ルート、すべての組織ユニット (OU)、およびすべてのアカウントにアタッチされます。実際、アクセス許可は付与されません。付与する SCP がないためです。代わりに、そのアカウントの管理者は、アカウントのユーザーやロール、またはグループに標準の AWS Identity and Access Management (IAM) アクセス許可ポリシーをアタッチして、それらのアクションへのアクセスを委任することができます。これらの各拒否リストポリシーによって、指定されたサービスまたはアクションへのアクセスがブロックされ、ポリシーはすべて上書きされます。

一般的な例

例: リクエストされた AWS リージョンに基づいて、AWS へのアクセスを拒否する

この SCP は、指定されたリージョン外でのオペレーションへのアクセスを拒否します。置換eu-central-1およびeu-west-1使用する AWS リージョンに入ります。これにより、承認されたグローバルサービスでオペレーションが除外されます。この例では、指定した 2 つの管理者ロールのいずれかによる要求を除外する方法も示します。

重要

組織で AWS Control Tower を使用する場合は、このポリシー例を使用しないことをお勧めします。AWS Control Tower は、このポリシー例と互換性のない形で AWS リージョン間で動作します。

このポリシーは、Deny 効果を使用して、承認された 2 つのリージョン (eu-central-1 および eu-west-1) のいずれかをターゲットとしないオペレーションに対するリクエストへのアクセスを拒否します。NotAction 要素を使用すると、すべてのオペレーション (または個別のオペレーション) がこの制限から除外されるサービスのリストを指定できます。グローバルサービスには、グローバルサービスにus-east-1地域、彼らはこのように免除されなければなりません。このように構成された SCP では、リクエストされたサービスが NotAction 要素に含まれている場合、us-east-1 リージョン内のグローバルサービスに対するリクエストが許可されます。us-east-1 リージョン内のサービスに対するその他のリクエストは、このポリシー例によって拒否されます。

注記

この例には、最新のグローバル AWS サービスまたはオペレーションがすべて含まれていない場合があります。 サービスとオペレーションのリストを組織内のアカウントによって使用されるグローバルサービスで置換えてください。

Tip

表示することができます。IAM コンソールでサービスの最終アクセス時間データ組織が使用しているグローバルサービスを決定します。-アクセスアドバイザータブには、そのエンティティで使用されている AWS サービスが、最新のアクセス順にソートされて表示されます。

Considerations
  • AWS KMS と AWS Certificate Manager は、リージョンのエンドポイントをサポートします。ただし、Amazon CloudFront などのグローバルサービスで使用する場合は、以下の SCP 例でグローバルサービス除外リストに含める必要があります。AWS CloudFormation のようなグローバルサービスでは、通常、同じリージョン内の AWS KMS と ACM へのアクセスが必要です。グローバルサービスでは、米国東部(バージニア北部)リージョン(us-east-1).

  • デフォルトでは、AWS STS はグローバルサービスであり、グローバルサービス除外リストに含める必要があります。ただし、AWS STS を有効にして、単一のグローバルエンドポイントではなくリージョンエンドポイントを使用できます。これを行う場合は、次の SCP の例にあるグローバルサービス免除リストから STS を削除できます。詳細については、「」を参照してください。AWS リージョンでの AWS STS の管理

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "a4b:*", "acm:*", "aws-marketplace-management:*", "aws-marketplace:*", "aws-portal:*", "awsbillingconsole:*", "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:*", "s3:GetAccountPublic*", "s3:ListAllMyBuckets", "s3:PutAccountPublic*", "shield:*", "sts:*", "support:*", "trustedadvisor:*", "waf-regional:*", "waf:*", "wafv2:*", "wellarchitected:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/Role1AllowedToBypassThisSCP", "arn:aws:iam::*:role/Role2AllowedToBypassThisSCP" ] } } } ] }

例: IAM ユーザーおよびロールで特定の変更ができないようにする

この SCP は、IAM ユーザーとロールは、組織内のすべてのアカウントで作成した特定の IAM ロールに変更を加えないようにします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToASpecificRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ] } ] }

例: IAM ユーザーおよびロールが指定の変更を行わないようにします。ただし、指定された管理者ロールは例外です。

この SCP は、前述の例において、管理者の例外を追加します。影響を受けるアカウントの IAM ユーザーとロールは、組織内のすべてのアカウントに作成された一般的な管理 IAM ロールに変更を加えないようにします。除きは、指定されたロールを使用する管理者向けです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessWithException", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ], "Condition": { "StringNotLike": { "aws:PrincipalARN":"arn:aws:iam::*:role/name-of-admin-role-to-allow" } } } ] }

例 10: API アクションの実行に MFA を要求する

以下のような SCP を使用して、IAM ユーザーまたはロールがアクションを実行する前に、多要素認証 (MFA) を有効にすることを要求します。この例では、Amazon EC2 インスタンスを停止するアクションです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}} } ] }

例: root ユーザーのサービスアクセスをブロックする

次のポリシーでは、すべてのアクセスをルートユーザーアカウントにサインインします。アカウントで特定の方法のルート認証情報を使用できないようにするには、このポリシーに独自のアクションを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictEC2ForRoot", "Effect": "Deny", "Action": [ "ec2:*" ], "Resource": [ "*" ], "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::*:root" ] } } } ] }

AWS Config の SCP の例

例: ユーザーによる AWS Config の無効化またはルールの変更を禁止する

この SCP では、影響を受けるアカウントのユーザーまたはロールは、AWS Config の無効化や、ルールまたはトリガーの変更を無効にする可能性のある AWS Config オペレーションを実行できなくなります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "config:DeleteConfigRule", "config:DeleteConfigurationRecorder", "config:DeleteDeliveryChannel", "config:StopConfigurationRecorder" ], "Resource": "*" } ] }

Amazon CloudWatch の SCP の例

例: ユーザーによる CloudWatch の無効化または設定の変更を禁止する

下位レベルの CloudWatch オペレータは、ダッシュボードとアラームを監視する必要があります。ただし、オペレータは、上司が配置する可能性のあるダッシュボードやアラームを削除または変更できないようにする必要があります。この SCP では、影響を受けるアカウントのユーザーまたはロールは、ダッシュボードまたはアラームを削除または変更する可能性のある CloudWatch コマンドを実行できなくなります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DeleteDashboards", "cloudwatch:DisableAlarmActions", "cloudwatch:PutDashboard", "cloudwatch:PutMetricAlarm", "cloudwatch:SetAlarmState" ], "Resource": "*" } ] }

Amazon Elastic Compute Cloud (Amazon EC2) の SCP 例

例: Amazon EC2 インスタンスに特定のタイプを使用するよう要求する

この SCP を使用すると、t2.micro インスタンスタイプを使用していないすべてのインスタンスの起動は拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireMicroInstanceType", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals":{ "ec2:InstanceType":"t2.micro" } } } ] }

Amazon GuardDuty のSCPの例

例: ユーザーによる GuardDuty の無効化または設定の変更を禁止する

この SCP では、影響を受けるアカウントのユーザーまたはロールは、コマンドとして直接、またはコンソールから GuardDuty を無効化したり、設定を変更することはできなくなります。これにより、効果的にGuardDuty 情報とリソースへの読み取り専用アクセスを可能にします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "guardduty:AcceptInvitation", "guardduty:ArchiveFindings", "guardduty:CreateDetector", "guardduty:CreateFilter", "guardduty:CreateIPSet", "guardduty:CreateMembers", "guardduty:CreatePublishingDestination", "guardduty:CreateSampleFindings", "guardduty:CreateThreatIntelSet", "guardduty:DeclineInvitations", "guardduty:DeleteDetector", "guardduty:DeleteFilter", "guardduty:DeleteInvitations", "guardduty:DeleteIPSet", "guardduty:DeleteMembers", "guardduty:DeletePublishingDestination", "guardduty:DeleteThreatIntelSet", "guardduty:DisassociateFromMasterAccount", "guardduty:DisassociateMembers", "guardduty:InviteMembers", "guardduty:StartMonitoringMembers", "guardduty:StopMonitoringMembers", "guardduty:TagResource", "guardduty:UnarchiveFindings", "guardduty:UntagResource", "guardduty:UpdateDetector", "guardduty:UpdateFilter", "guardduty:UpdateFindingsFeedback", "guardduty:UpdateIPSet", "guardduty:UpdatePublishingDestination", "guardduty:UpdateThreatIntelSet" ], "Resource": "*" } ] }

AWS Resource Access Manager の SCP 例

例: 外部共有を禁止する

以下の SCP の例では、組織の一部ではない IAM ユーザーおよびロールとの共有を許可するリソース共有をユーザーが作成できないようにしています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ram:CreateResourceShare", "ram:UpdateResourceShare" ], "Resource": "*", "Condition": { "Bool": { "ram:RequestedAllowsExternalPrincipals": "true" } } } ] }

例: 特定のアカウントが、指定したリソースタイプのみを共有できるようにする

以下のSCPは、アカウントを許可します111111111111および222222222222を使用して、プレフィックスリストを共有するリソース共有を作成し、プレフィックスリストを既存のリソース共有に関連付けます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "OnlyNamedAccountsCanSharePrefixLists", "Effect": "Deny", "Action": [ "ram:AssociateResourceShare", "ram:CreateResourceShare" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "111111111111", "222222222222" ] }, "StringEquals": { "ram:RequestedResourceType": "ec2:PrefixList" } } } ] }

例: 組織または組織単位 (OU) との共有を禁止する

次の SCP では、ユーザーが AWS 組織または OU とリソースを共有するリソース共有を作成できないようにしています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceShare" ], "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "ram:Principal": [ "arn:aws:organizations::*:organization/*", "arn:aws:organizations::*:ou/*" ] } } } ] }

例: 指定した IAM ユーザーとロールのみとの共有を許可する

以下の例の SCP では、ユーザーがリソースをのみ組織o-12345abcdef、組織単位ou-98765fedcba、アカウント111111111111

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ram:AssociateResourceShare", "ram:CreateResourceShare" ], "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "ram:Principal": [ "arn:aws:organizations::123456789012:organization/o-12345abcdef", "arn:aws:organizations::123456789012:ou/o-12345abcdef/ou-98765fedcba", "111111111111" ] } } } ] }

Amazon Virtual Private Cloud (Amazon VPC) の SCP 例

例: ユーザーによる Amazon VPC フローログの削除を禁止する

この SCP では、影響を受けるアカウントのユーザーまたはロールは、Amazon Elastic Compute Cloud (Amazon EC2) フローログ、CloudWatch ロググループまたはログストリームを削除できなくなります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:DeleteFlowLogs", "logs:DeleteLogGroup", "logs:DeleteLogStream" ], "Resource": "*" } ] }

例: インターネットアクセスに接続されていない VPC を使用した取得を禁止する

この SCP では、影響を受けるアカウントのユーザーまたはロールは、Amazon EC2 仮想プライベートクラウド (VPC) の設定を変更して、インターネットへの直接アクセスを許可しないようにします。既存の直接アクセスや、オンプレミスネットワーク環境を経由するアクセスはブロックされません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:AttachInternetGateway", "ec2:CreateInternetGateway", "ec2:CreateEgressOnlyInternetGateway", "ec2:CreateVpcPeeringConnection", "ec2:AcceptVpcPeeringConnection", "globalaccelerator:Create*", "globalaccelerator:Update*" ], "Resource": "*" } ] }

リソースのタグ付けのSCPの例

例: 指定された作成されたリソースにタグを要求する

次の SCP では、リクエストに指定されたタグが含まれていない場合、影響を受けるアカウントの IAM ユーザーとロールが特定のリソースタイプを作成できないようにします。

重要

環境で使用するサービスを使用して、拒否ベースのポリシーを必ずテストしてください。以下の例は、タグなしシークレットを作成したり、タグなしの Amazon EC2 インスタンスを実行したりする単純なブロックであり、例外は含まれていません。

次のポリシーの例は、AWS CloudFormation と書かれているとおりに互換性がありません。これは、このサービスはシークレットを作成し、それを 2 つの別々のステップとしてタグ付けするためです。このポリシー例では、AWS CloudFormation がスタックの一部としてシークレットを作成することを効果的にブロックします。なぜなら、このようなアクションは、必須とタグ付けされていないシークレットに簡単に発生するためです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreateSecretWithNoProjectTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyRunInstanceWithNoProjectTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyCreateSecretWithNoCostCenterTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } }, { "Sid": "DenyRunInstanceWithNoCostCenterTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } } ] }

AWS Organizations SCP と IAM アクセス許可ポリシーをサポートするサービスとアクションのリストはすべて、「」を参照してください。AWS Services のアクション、リソース、および条件キー()IAM ユーザーガイド