بنقرة واحدة
cloud-security
Comprehensive cloud security practices including identity, network, data, and compliance controls
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Comprehensive cloud security practices including identity, network, data, and compliance controls
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Building autonomous AI agents capable of reasoning, planning, and executing multi-step tasks
Learning from a small number of examples per class using metric learning and meta-learning
Techniques and frameworks for generating new data instances that match the distribution of training data
Advanced techniques for training and fine-tuning transformer-based language models at scale
Foundational understanding and practical implementation of transformer-based language models
Integrating and reasoning across multiple data modalities including text, images, audio, and video
| name | cloud-security |
| description | Comprehensive cloud security practices including identity, network, data, and compliance controls |
| license | MIT |
| compatibility | ["aws-security","azure-security","gcp-security","kubernetes-security"] |
| audience | Security engineers, DevOps engineers, cloud architects |
| category | cloud-computing |
I provide comprehensive expertise in cloud security - protecting cloud infrastructure, applications, and data from threats through identity management, network security, encryption, and compliance controls. I cover multi-cloud security strategies, zero-trust architectures, security automation, incident response, and regulatory compliance frameworks. My approach integrates security throughout the cloud lifecycle from infrastructure design to operational monitoring.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowS3ReadOnlyAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::secure-bucket-prod",
"arn:aws:s3:::secure-bucket-prod/*"
],
"Condition": {
"StringEquals": {
"aws:sourceAccount": "123456789012"
},
"ArnEquals": {
"aws:sourceArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/prod-stack/*"
}
}
},
{
"Sid": "AllowDynamoDBQueryOnly",
"Effect": "Allow",
"Action": [
"dynamodb:Query",
"dynamodb:GetItem"
],
"Resource": "arn:aws:dynamodb:*:*:table/UserDataTable",
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:Attributes": [
"userId",
"email",
"createdAt"
]
},
"StringEquals": {
"dynamodb:Select": "SPECIFIC_ATTRIBUTES"
}
}
}
]
}
{
"displayName": "Require MFA for All Non-Admin Users",
"state": "enabled",
"conditions": {
"users": {
"includeGroups": [
"c4c639a8-6f1d-4a8b-9a9d-1a2b3c4d5e6f"
],
"excludeGroups": [
"admin-group-id"
]
},
"applications": {
"includeAllApps": true
},
"locations": {
"includeLocations": [
"All"
],
"excludeLocations": [
"TrustedLocations"
]
},
"signInRiskLevels": [
"low",
"medium",
"high"
]
},
"grantControls": {
"operator": "OR",
"builtInControls": [
"mfa"
]
},
"sessionControls": {
"signInFrequency": {
"value": 7,
"type": "days"
},
"persistentBrowser": {
"mode": "never"
}
}
}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: secure-namespace-policy
namespace: production
spec:
podSelector:
matchLabels:
app: api-service
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: ingress-nginx
podSelector:
matchLabels:
app: ingress-controller
ports:
- protocol: TCP
port: 8080
- from:
- podSelector:
matchLabels:
app: api-service
ports:
- protocol: TCP
port: 8080
egress:
- to:
- podSelector:
matchLabels:
app: database
ports:
- protocol: TCP
port: 5432
- to:
- namespaceSelector: {}
podSelector:
matchLabels:
k8s-app: kube-dns
ports:
- protocol: UDP
port: 53
- to:
- ipBlock:
cidr: 10.0.0.0/8
except:
- 10.0.1.0/24
ports:
- protocol: TCP
port: 443
name: https
- protocol: TCP
port: 80
name: http
import boto3
from datetime import datetime, timedelta
from dataclasses import dataclass
from typing import List, Dict
import json
@dataclass
class SecurityFinding:
id: str
title: str
severity: str
resource: str
status: str
remediation: str
class SecurityHubReporter:
def __init__(self, region: str = 'us-east-1'):
self.securityhub = boto3.client('securityhub', region_name=region)
self.inspector2 = boto3.client('inspector2', region_name=region)
self.config = boto3.client('config', region_name=region)
def get_critical_findings(self, days: int = 7) -> List[SecurityFinding]:
findings = []
start_date = (datetime.utcnow() - timedelta(days=days)).isoformat()
response = self.securityhub.get_findings(
Filters={
'RecordState': [{'Value': 'ACTIVE', 'Comparison': 'EQUALS'}],
'SeverityLabel': [{'Value': 'CRITICAL', 'Comparison': 'EQUALS'}],
'UpdatedAt': [{'Start': start_date, 'Comparison': 'GREATER_THAN_OR_EQUAL'}]
},
SortCriteria=[{'Field': 'UpdatedAt', 'SortOrder': 'DESC'}],
MaxResults=100
)
for finding in response.get('Findings', []):
findings.append(SecurityFinding(
id=finding.get('Id'),
title=finding.get('Title'),
severity=finding.get('Severity', {}).get('Label'),
resource=self._get_primary_resource(finding),
status=finding.get('RecordState'),
remediation=finding.get('Remediation', {}).get('Recommendation', {}).get('Text')
))
return findings
def get_vulnerability_findings(self) -> Dict:
vulnerabilities = {}
response = self.inspector2.list_finding_aggregations(
findingAggregation={
'groupByAttribute': 'SEVERITY'
},
filterCriteria={
'findingType': [{'comparison': 'EQUALS', 'value': 'PACKAGE_VULNERABILITY'}],
'sortBy': ['SEVERITY_DESC']
}
)
return response.get('aggregations', [])
def get_config_compliance(self) -> Dict:
rules = {}
response = self.config.describe_compliance_by_config_rules(
ComplianceTypes=['AWS::Config::Compliance'],
Limit=100
)
for result in response.get('ComplianceByConfigRules', []):
rule = result.get('ConfigRuleName')
status = result.get('Compliance().get('ComplianceType')
count = result.get('Compliance().get('ComplianceContributorCount', {}).get('CappedCount')
rules[rule] = {'status': status, 'non_compliant_count': count}
return rules
def generate_security_report(self) -> Dict:
return {
'generated_at': datetime.utcnow().isoformat(),
'critical_findings': len(self.get_critical_findings()),
'vulnerabilities': self.get_vulnerability_findings(),
'compliance': self.get_config_compliance(),
'recommendations': self._generate_recommendations()
}
def _get_primary_resource(self, finding: Dict) -> str:
resources = finding.get('Resources', [])
if resources:
return f"{resources[0].get('Type')}: {resources[0].get('Id')}"
return 'Unknown'
# .github/workflows/security-scan.yml
name: Infrastructure Security Scan
on:
push:
paths:
- '**.tf'
- 'terraform/**/*'
pull_request:
paths:
- '**.tf'
- 'terraform/**/*'
schedule:
- cron: '0 0 * * 0'
jobs:
tfsec:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tfsec
uses: aquasecurity/tfsec-action@v1.2.0
with:
soft_fail: true
format: sarif
output_path: tfsec.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: tfsec.sarif
category: '/tfsec'
checkov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Checkov
uses: bridgecrewio/checkov-action@master
with:
directory: terraform/
framework: terraform
output_format: sarif
output_file_path: checkov.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: checkov.sarif
category: '/checkov'
sast:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Gitleaks
uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITLEAKS_CONFIG_PATH: .gitleaks.toml
- name: Run TruffleHog
uses: trufflesecurity/trufflehog-action@main
with:
extra_args: --filesystem terraform/
secrets_scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for secrets
uses: marvinpinto/action-automatic-releases@latest
with:
repo: Yelp/detect-secrets
automatic_release_tag: latest
files: detect-secrets baseline
# org-policies/iam.yaml
constraints:
# Disable service account key creation
constraints/iam.disableServiceAccountKeyCreation: {}
# Restrict allowed service account scopes
constraints/iam.allowedPolicyMemberDomains:
- allowedList:
values:
- "domain:company.com"
# Require OS Login for VM access
constraints/compute.requireOsLogin: {}
---
# org-policies/onetwork-security.yaml
constraints:
# Disable external IP on VMs
constraints/compute.disableExternalIPCreation:
deny:
all: true
# Require VPC flow logs
constraints/compute.enableVpcFlowLogs:
enforce: true
# Restrict subnet creation
constraints/compute.restrictSubnetworkCreation:
allowedList:
values:
- "projects/*/regions/*/subnetworks/prod-*"
---
# org-policies/data-protection.yaml
constraints:
# Require CMEK for BigQuery
constraints/bigquery.restrictPublicVisibility: {}
# Enable VPC Service Controls
constraints/ storage.uniformBucketLevelAccess:
enforce: true
# Require labels on resources
constraints/resourcemanager.requiredLabels:
requiredList:
values:
- key: "environment"
value: "production"
- key: "team"
value: "*"