En la gestión de seguridad en AWS, las Service Control Policies (SCPs) son herramientas fundamentales para imponer restricciones y garantizar la protección de los recursos. En este post, exploraremos una serie de ejemplos de SCPs que juegan un papel crucial en la seguridad de una organización en AWS.

Denegar la creación de Access Keys

Esta política impide que el usuario raíz de cualquier cuenta cree claves de acceso y restringe esta capacidad a roles específicos de AWS SSO con acceso de administrador. Porque protege al usuario raíz de crear credenciales que podrían ser comprometidas y controla quién puede crear claves de acceso.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAccessKeyForRootUser",
      "Effect": "Deny",
      "Action": "iam:CreateAccessKey",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam:::root"
          ]
        }
      }
    },
    {
      "Sid": "DenyAccessKeyForAnyUser",
      "Effect": "Deny",
      "Action": "iam:CreateAccessKey",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AdministratorAccess*"
          ]
        }
      }
    }
  ]
}

Denegar la creación de usuarios de IAM

Esta política deniega la capacidad de crear usuarios de IAM en todas las cuentas donde se aplique dentro de la organización de AWS. Evita la creación no autorizada de usuarios de IAM, lo que fortalece la seguridad al centralizar el control de acceso y reducir el riesgo de configuraciones inseguras en las cuentas de la organización.

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

Denegar el abandono de la organización

Esta política impide que las cuentas miembro de una organización en AWS puedan salir de la organización. Evita que las cuentas se separen de la organización sin autorización, lo que ayuda a mantener el control centralizado y asegura que las políticas de seguridad y conformidad se apliquen de manera uniforme en todas las cuentas.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "organizations:LeaveOrganization"
      ],
      "Resource": "*",
      "Effect": "Deny"
    }
  ]
}

Protección de AWS Config

Esta política impide que se eliminen o detengan varios componentes críticos de AWS Config, excepto si las acciones son realizadas por roles específicos reservados por AWS o roles de SSO con acceso de administrador. Protege la configuración y supervisión continua de la conformidad en AWS, asegurando que solo roles autorizados puedan deshabilitar o modificar estos servicios, lo que evita la interrupción de las políticas de conformidad y seguridad.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "config:DeleteConfigurationAggregator",
        "config:DeleteConfigurationRecorder",
        "config:DeleteDeliveryChannel",
        "config:DeleteConfigRule",
        "config:DeleteOrganizationConfigRule",
        "config:DeleteRetentionConfiguration",
        "config:StopConfigurationRecorder",
        "config:DeleteAggregationAuthorization",
        "config:DeleteEvaluationResults"
      ],
      "Resource": "*",
      "Condition": {
        "ArnNotLike": {
          "aws:PrincipalARN": [
            "arn:aws:iam:::role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AdministratorAccess*",
            "arn:aws:iam:::role/aws-service-role/securityhub.amazonaws.com/AWSServiceRoleForSecurityHub",
            "arn:aws:iam:::role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
            "arn:aws:iam:::role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms",
            "arn:aws:iam:::role/aws-service-role/config-multiaccountsetup.amazonaws.com/AWSServiceRoleForConfigMultiAccountSetup"
          ]
        }
      }
    }
  ]
}

Protección de GuardDuty

Esta política impide la eliminación de componentes clave de AWS GuardDuty y la disociación de cuentas dentro de la configuración de seguridad. Protege la continuidad del monitoreo de amenazas y la integridad de la configuración de seguridad, evitando que cualquier acción comprometa la protección y supervisión de la seguridad en AWS.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "guardduty:DeleteDetector",
        "guardduty:DeleteFilter",
        "guardduty:DeleteInvitations",
        "guardduty:DeleteIPSet",
        "guardduty:DeleteMembers",
        "guardduty:DeletePublishingDestination",
        "guardduty:DeleteThreatIntelSet",
        "guardduty:DisassociateFromMasterAccount",
        "guardduty:DisassociateMembers",
        "guardduty:StopMonitoringMembers",
        "guardduty:UntagResource"
      ],
      "Resource": "*"
    }
  ]
}

Denegar Subida de Objetos sin Encriptar

Esta política impide la carga de objetos en S3 si no se especifica el cifrado del lado del servidor. Garantiza que todos los datos almacenados en S3 estén cifrados, protegiendo la información sensible y cumpliendo con las mejores prácticas de seguridad y normativas.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption": "true"
        }
      }
    }
  ]
}