

# 明示的な拒否と暗黙的な拒否の違い
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

該当するポリシーに `Deny` ステートメントが含まれている場合、リクエストは明示的に拒否されます。リクエストに適用されるポリシーに `Allow` ステートメントと `Deny` ステートメントが含まれている場合は、`Deny` ステートメントが `Allow` ステートメントより優先されます。リクエストは明示的に拒否されます。

該当する `Deny` ステートメントがなく、該当する `Allow` ステートメントもない場合は、暗黙的な拒否が発生します。IAM プリンシパルは、デフォルトでアクセスが拒否されされるため、アクションを実行するには明示的に許可を受ける必要があります。そうでない場合は、アクセスは暗黙的に拒否されます。

承認戦略を設計する場合、プリンシパルのリクエストを成功させるには、作成するポリシーに `Allow` ステートメントを含める必要があります。ただし、明示的な拒否と暗黙的な拒否の任意の組み合わせを選択できます。

例えば、許可されたアクション、暗黙的に拒否されたアクション、および明示的に拒否されたアクションを含む、次のポリシーを作成できます。`AllowGetList` ステートメントは、`Get` または `List` プレフィックスで始まる IAM アクションに対して、読み取り専用のアクセスを**許可**します。`iam:CreatePolicy` など、IAM の他のすべてのアクションは、**暗黙的に拒否**されます。`DenyReports` ステートメントは、`iam:GetOrganizationsAccessReport` などの`Report` サフィックスを含むアクションへのアクセスを拒否することで、IAM レポートへのアクセスを**明示的に拒否**します。誰かがこのプリンシパルに別のポリシーを追加して、`iam:GenerateCredentialReport` などのIAM レポートへのアクセス許可を付与した場合は、この明示的拒否のために、レポート関連のリクエストは引き続き拒否されます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------