원클릭으로
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 직업 분류 기준
| 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: "*"
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