

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Negare l' ModifyInstanceGroup azione in Amazon EMR
<a name="emr-cluster-deny-modifyinstancegroup"></a>

L'[ModifyInstanceGroups](https://docs.aws.amazon.com/emr/latest/APIReference/API_ModifyInstanceGroups.html)azione in Amazon EMR non richiede che tu fornisca un ID cluster con l'azione. È invece possibile specificare solo un ID del gruppo di istanze. Per questo motivo, una policy di negazione apparentemente semplice per questa operazione basata sull'ID cluster o su un tag cluster potrebbe non avere l'effetto desiderato. Esaminiamo l'esempio di policy seguente.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": "AllowELASTICMAPREDUCEModifyinstancegroups"
    },
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Deny",
      "Resource": [
        "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67"
      ],
      "Sid": "DenyELASTICMAPREDUCEModifyinstancegroups"
    }
  ]
}
```

------

Se un utente con questa policy associata esegue un'operazione `ModifyInstanceGroup` e specifica solo l'ID del gruppo di istanze, la policy non viene applicata. Poiché l'operazione è consentita su tutte le altre risorse, avrà esito positivo.

Una soluzione a questo problema consiste nell'allegare una dichiarazione politica all'identità che utilizza un [NotResource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html)elemento per negare qualsiasi `ModifyInstanceGroup` azione eseguita senza un ID cluster. La seguente policy di esempio aggiunge tale dichiarazione di negazione in modo che qualsiasi richiesta `ModifyInstanceGroups` abbia esito negativo a meno che non venga specificato un ID cluster. Poiché un'identità deve specificare un ID cluster con l'operazione, le istruzioni negate basate sull'ID cluster sono efficaci.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": "AllowELASTICMAPREDUCEModifyinstancegroups"
    },
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Deny",
      "Resource": [
        "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67"
      ],
      "Sid": "DenyELASTICMAPREDUCEModifyinstancegroupsSpecificCluster"
    },
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Deny",
      "NotResource": "arn:*:elasticmapreduce:*:*:cluster/*",
      "Sid": "DenyELASTICMAPREDUCEModifyinstancegroupsNonCluster"
    }
  ]
}
```

------

Un problema simile si verifica quando si desidera negare l'operazione `ModifyInstanceGroups` in base al valore associato a un tag cluster. La soluzione è simile. Oltre a un'istruzione di negazione che specifica il valore del tag, è possibile aggiungere un'istruzione della policy che neghi l'operazione `ModifyInstanceGroup` se il tag specificato non è presente, indipendentemente dal valore.

Nell'esempio seguente viene illustrata una policy che, se collegata a un'identità, nega all'identità l'operazione `ModifyInstanceGroups` per qualsiasi cluster con il tag `department` impostato su `dev`. Questa istruzione è efficace solo a causa dell'istruzione di negazione che utilizza la condizione `StringNotLike` per negare l'operazione a meno che il tag `department` non sia presente.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": "AllowELASTICMAPREDUCEModifyinstancegroups"
    },
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/department": "dev"
        }
      },
      "Effect": "Deny",
      "Resource": [
        "*"
      ],
      "Sid": "DenyELASTICMAPREDUCEModifyinstancegroupsDevDepartment"
    },
    {
      "Action": [
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:ResourceTag/department": "?*"
        }
      },
      "Effect": "Deny",
      "Resource": [
        "*"
      ],
      "Sid": "DenyELASTICMAPREDUCEModifyinstancegroupsNoDepartmentTag"
    }
  ]
}
```

------