

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

# SCP 構文
<a name="orgs_manage_policies_scps_syntax"></a>

サービスコントロールポリシー (SCPs、 AWS Identity and Access Management (IAM) アクセス許可ポリシーおよび[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) (Amazon S3 バケットポリシーなど) で使用される構文と同様の構文を使用します。IAM ポリシーの詳細とその構文については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)の「*IAM ポリシーの概要*」を参照してください。

SCP は、[JSON](http://json.org) のルールに従って構造化されたプレーンテキストファイルです。このトピックで説明されている要素を使用します。

**注記**  
SCP 内のすべての文字は、その[上限サイズ](orgs_reference_limits.md#min-max-values)に対してカウントされます。このガイドの例では、読みやすさを向上させるため、空白文字を追加してフォーマットされた SCP を示します。ただし、ポリシーサイズが上限サイズに近づいている場合は、スペースを節約するために、引用符の外側にあるすべての空白文字 (スペースや改行など) を削除できます。

SCP に関する一般情報については、「[サービスコントロールポリシー (SCP)](orgs_manage_policies_scps.md)」を参照してください。

## 要素の概要
<a name="scp-elements-table"></a>

次の表には、SCP で使用できるポリシー要素を要約しています。一部のポリシー要素はアクションを拒否する SCP のみで使用できます。[**Supported Effects **] (サポートされる効果) の列には、SCP の各ポリシー要素で使用できる効果のタイプが一覧表示されています。


| Element | 目的 | サポートされる効果 | 
| --- | --- | --- | 
| [アクション](#scp-syntax-action) | SCP が許可または拒否する AWS サービスとアクションを指定します。 | `Allow`, `Deny` | 
| [[Effect]](#scp-syntax-effect) (効果) | SCP ステートメントがプリンシパルおよびアカウント内の IAM ユーザーとロールへのアクセスを[許可](orgs_manage_policies_scps_evaluation.md#how_scps_allow)するか[拒否](orgs_manage_policies_scps_evaluation.md#how_scps_deny)するかを定義します。 | `Allow`, `Deny` | 
| [Statement](#scp-syntax-statement) | ポリシー要素のコンテナとして機能します。SCP には複数のステートメントを含めることができます。 | `Allow`, `Deny` | 
| [Statement ID (Sid)](#scp-syntax-sid) | (オプション) ステートメントにわかりやすい名前を付けます。 | `Allow`, `Deny` | 
| [Version](#scp-syntax-version) | ポリシーの処理に使用する言語構文ルールを指定します。 | `Allow`, `Deny` | 
| [条件](#scp-syntax-condition) | ステートメントを実行するタイミングの条件を指定します。 | `Allow,``Deny` | 
| [NotAction](#scp-syntax-action) | SCP から除外される AWS サービスとアクションを指定します。`Action` 要素の代わりに使用します。 | `Allow,``Deny` | 
| [[リソース]](#scp-syntax-resource)  | SCP が適用される AWS リソースを指定します。 | `Allow,``Deny` | 
| [NotResource](#scp-syntax-resource) | SCP から除外される AWS リソースを指定します。Resource 要素の代わりに使用します。 | `Allow`, `Deny` | 

次のセクションでは、SCP でポリシー要素がどのように使用されるかについての詳細および例を提供しています。

**Topics**
+ [要素の概要](#scp-elements-table)
+ [`Action` および `NotAction` 要素](#scp-syntax-action)
+ [`Condition` 要素](#scp-syntax-condition)
+ [`Effect` 要素](#scp-syntax-effect)
+ [`Resource`および `NotResource` 要素](#scp-syntax-resource)
+ [`Statement` 要素](#scp-syntax-statement)
+ [ステートメント ID (`Sid`) 要素](#scp-syntax-sid)
+ [`Version` 要素](#scp-syntax-version)
+ [サポートされていない要素](#scp-syntax-unsupported)

## `Action` および `NotAction` 要素
<a name="scp-syntax-action"></a>

`Action` または `NotAction`要素の値は、ステートメントによって許可または拒否される AWS サービスとアクションを識別する文字列のリスト (JSON 配列) です。

各文字列は、サービスの略称 (「s3」、「ec2」、「iam」、「organizations」など) で構成されており、すべて小文字で、コロンと、その後にサービスのアクションが続きます。アクションと表記では、大文字と小文字は区別されません。一般的にこれらはすべて、大文字で始まり、残りは小文字の各単語で入力されます。例: `"s3:ListAllMyBuckets"`。

SCP でアスタリスク (\*) や疑問符 (?) などのワイルドカード文字を使用することもできます。
+ 名前の一部を共有する複数のアクションを検索するには、アスタリスクをワイルドカードとして使用します。値 `"s3:*"` は、Amazon S3 サービス内のすべてのアクションを意味します。値 `"ec2:Describe*"` は「Describe」で始まる EC2 アクションのみに一致します。
+ 単一の文字を検索する場合は疑問符 (?) を使用します。

 AWS Organizations SCPs と IAM アクセス許可ポリシーの両方でサポートされるすべてのサービスとアクションのリストについては、*IAM ユーザーガイド*の「 [AWS サービスのアクション、リソース、および条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_actionsconditions.html)」を参照してください。

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシー要素: Action](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_action.html)」および「[IAM JSON ポリシー要素: NotAction](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html)」を参照してください。

### `Action` 要素の例
<a name="scp-syntax-action-example"></a>

次の例では、アカウント管理者に、アカウント内の EC2 インスタンスの許可を記述、開始、停止、終了する権限を委譲することを許可するステートメントを持つ SCP を示しています。これは、[許可リスト](orgs_manage_policies_scps_evaluation.md#how_scps_allow)の例であり、デフォルトの `Allow *` ポリシーがアタッチ***されていない***場合に便利です。これにより、デフォルトではアクセス許可が暗黙的に拒否されます。デフォルトの `Allow *` ポリシーがルート、OU、次のポリシーがアタッチされるアカウントに引き続きアタッチされている場合は、ポリシーの効果はありません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
          "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs",
          "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances",
          "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances"
        ],
        "Resource": "*"
    }
}
```

------

次の例では、アタッチされたアカウントで使用されたくないサービスへの[アクセスを拒否](orgs_manage_policies_scps_evaluation.md#how_scps_deny)する方法を示しています。デフォルトの `"Allow *"` SCP がすべての OU および root にまだアタッチされていることを前提としています。このポリシーの例では、アタッチされたアカウントのアカウント管理者は、IAM、Amazon EC2、Amazon RDS サービスにアクセス許可を移譲することはできません。他のサービスからのあらゆるアクションは、移譲を拒否する他のポリシーがアタッチされていない限り移譲できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Deny",
        "Action": [ "iam:*", "ec2:*", "rds:*" ],
        "Resource": "*"
    }
}
```

------

### `NotAction` 要素の例
<a name="scp-syntax-notaction-example"></a>

次の例は、 `NotAction`要素を使用して、ポリシーの効果から AWS サービスを除外する方法を示しています。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "LimitActionsInRegion",
      "Effect": "Deny",
      "NotAction": "iam:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": "us-west-1"
         }
       }
     }
   ]
}
```

------

このステートメントでは、IAM アクションを使用する場合を除き AWS リージョン、影響を受けるアカウントは指定された でアクションを実行することに限定されます。

## `Condition` 要素
<a name="scp-syntax-condition"></a>

SCP の Allow および Deny ステートメントには、`Condition` 要素を指定することができます。

次の例は、SCP の allow ステートメントで条件要素を使用して、特定のプリンシパルが AWS サービスにアクセスできるようにする方法を示しています。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowServicesForSpecificPrincipal",
         "Effect":"Allow",
         "Action":[
            "ec2:*",
            "s3:*",
            "rds:*",
            "lambda:*",
            "cloudformation:*",
            "iam:*",
            "cloudwatch:*"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aws:PrincipalArn":[
                  "arn:aws:iam::123456789012:role/{{specific-role}}"
               ]
            }
         }
      }
   ]
}
```

次の例は、SCP の Deny ステートメントで条件要素を使用して、指定されたサービスのアクションを除き、`eu-central-1` および `eu-west-1` リージョン外のすべての操作へのアクセスを制限する方法を示しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyAllOutsideEU",
            "Effect": "Deny",
            "NotAction": [
                "{{cloudfront:*",
                "iam:*",
                "route53:*",
                "support:*}}"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "{{eu-central-1",
                        "eu-west-1}}"
                    ]
                }
            }
        }
    ]
}
```

------

詳細については、「*IAM ユーザーガイド*」の「[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)」を参照してください。

## `Effect` 要素
<a name="scp-syntax-effect"></a>

各ステートメントには必ず `Effect` を 1 つ含める必要があります。この値は `Allow` または `Deny` となります。これは、同じステートメントにリストされたアクションが影響を受けます。

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシーの要素: Effect](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html)」を参照してください。

### `"Effect": "Allow"`
<a name="scp-syntax-effect-allow"></a>

次の例では、`Allow` の値を持つ `Effect` 要素を含むステートメントを持つ SCP を示しています。これにより、アカウントユーザーが Amazon S3 サービスのアクションを実行できるようになります。この例は、[許可リスト戦略](orgs_manage_policies_scps_evaluation.md#how_scps_allow)を使用する組織で役立ちます (デフォルトの `FullAWSAccess` ポリシーがすべてデタッチされているため、デフォルトでアクセス許可は暗黙的に拒否されます)。その結果、このステートメントでは、アタッチされているすべてのアカウントに対する Amazon S3 のアクセスが[許可されます](orgs_manage_policies_scps_evaluation.md#how_scps_allow)。

```
{
    "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    }
}
```

このステートメントは IAM アクセス許可ポリシーに同じ `Allow` 値を使用しますが、SCP では実際に何かを実行するためのアクセス許可をユーザーに付与しません。代わりに、SCPは、組織、組織単位 (OU)、またはアカウントに対するアクセス許可の上限を指定するフィルターとして機能します。前述の例では、アカウント内のユーザーで `AdministratorAccess` 管理ポリシーがアタッチされている場合でも、SCP は影響を受けるアカウントの***すべての***ユーザーによるアクションを Amazon S3 アクションのみに制限します。

### `"Effect": "Deny"`
<a name="scp-syntax-effect-deny"></a>

また、`Effect` 要素に `Deny` の値があるステートメントでは、SCP の有効時に特定のリソースへのアクセスを制限したり、条件を定義することもできます。

次の例は、拒否ステートメントで条件キーを使用する方法の例を示しています。

------
#### [ JSON ]

****  

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

------

SCP のこのステートメントは、影響が及ぶアカウント (SCP がアカウント自体にアタッチされているか、アカウントがある組織ルートあるいは OU にアタッチされている場合) が、Amazon EC2 インスタンスが `t2.micro` に設定されていないときに Amazon EC2 インスタンスを起動しないようにするガードレールを設定します。このアクションを許可する IAM ポリシーがアカウントにアタッチされている場合でも、SCP によって作成されたガードレールはこれを許可しません。

## `Resource`および `NotResource` 要素
<a name="scp-syntax-resource"></a>

`Effect` 要素に `Allow` の値があるステートメントでは、SCP の `Resource` 要素の「\*」のみを指定することができます。個々のリソースの Amazon リソースネーム (ARN) を指定することはできません。

リソース要素では、アスタリスク (\*) や疑問符 (?) などのワイルドカード文字を使用することができます。
+ 名前の一部を共有する複数のアクションを検索するには、アスタリスクをワイルドカードとして使用します。
+ 単一の文字を検索する場合は疑問符 (?) を使用します。

`Effect` 要素に `Deny` の値があるステートメントでは、次の例に示すように、個々の ARN を指定することが*できます*。

------
#### [ JSON ]

****  

```
{    
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessToAdminRole",
      "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/{{role-to-deny}}"
      ]
    }
  ]
}
```

------

この SCP は、影響を受けるアカウントの IAM ユーザーとロールが、組織内のすべてのアカウントに作成された共通の管理 IAM ロールに変更を加えることを制限します。

次の例は、`NotResource` 要素を使用して、ポリシーの効果から特定の Amazon Bedrock モデルを除外する方法を示しています。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"Statement1",
         "Effect":"Deny",
         "Action":[
            "bedrock:InvokeModel",
            "bedrock:InvokeModelWithResponseStream"
         ],
         "NotResource":[
            "arn:aws:bedrock:*::foundation-model/{{model-to-permit}}"
         ]
      }
   ]
}
```

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシー要素: Resource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)」を参照してください。

## `Statement` 要素
<a name="scp-syntax-statement"></a>

SCP は、1 つ以上の `Statement` 要素で構成されます。ポリシーには `Statement` キーワードを 1 つだけ含めることができますが、値は、ステートメントの JSON 配列 ([ ] の文字で囲まれる) もあります。

以下の例は、単一の `Effect` 要素、`Action` 要素、`Resource` 要素で構成される単一のステートメントを示しています。

```
    "Statement": {
        "Effect": "Allow",
        "Action": "*",
        "Resource": "*"
    }
```

次の例では、1 つの `Statement` 要素内に、配列リストとして 2 つのステートメントが含まれています。最初のステートメントではすべてのアクションが許可されますが、2 つ目のステートメントではすべての EC2 アクションが拒否されます。結果的に、アカウントの管理者は、Amazon Elastic Compute Cloud (Amazon EC2) *以外*のアクセス許可をすべて委譲できます。

```
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "*"
        }
    ]
```

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシー要素: Statement](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_statement.html)」を参照してください。

## ステートメント ID (`Sid`) 要素
<a name="scp-syntax-sid"></a>

`Sid` は、ポリシーステートメントに提供するオプションの識別子です。`Sid` 値は、ステートメント配列内の各ステートメントに割り当てることができます。次の SCP の例は、`Sid` ステートメントのサンプルを示しています。

```
{
    "Statement": {
        "Sid": "AllowsAllActions",
        "Effect": "Allow",
        "Action": "*",
        "Resource": "*"
    }
}
```

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシー要素: ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_id.html)」を参照してください。

## `Version` 要素
<a name="scp-syntax-version"></a>

すべての SCP には、`Version`値を持つ要素`"2012-10-17"`が含まれる必要があります。これは、IAM アクセス許可ポリシーの最新バージョンと同じバージョンの値です。

詳細については、*IAM ユーザーガイド*の「[IAM JSON ポリシー要素: Version](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html)」を参照してください。

## サポートされていない要素
<a name="scp-syntax-unsupported"></a>

以下の要素は SCP ではサポートされていません。
+ `NotPrincipal`
+ `Principal`