Giter VIP home page Giter VIP logo

trackiam's Introduction

AWS IAM Tracker

This project collects IAM actions, AWS APIs and managed policies from various public sources.

You can explore the data collected using the static site.

Collected data is published to the policies and services folders in this repo.

Thank you to alanakirby/aktion for originally having this idea and being gracious about me shamelessly ripping it off.

Stats

  • Unique services: 398
  • Unique actions: 17058
  • Managed policies: 1195

Most common managed policy name prefixes:

Policy ARN Count
arn:aws:iam::aws:policy/AWS* 322
arn:aws:iam::aws:policy/Amazon* 307
arn:aws:iam::aws:policy/aws-service-role/* 269
arn:aws:iam::aws:policy/service-role/* 190
arn:aws:iam::aws:policy/job-function/* 7
Other 100

The following table summarises the AWS APIs.

  • The first column is the name of the API as far as IAM policies are concerned.
  • The second column is IAM actions that exactly match the names of invokable APIs exposed by AWS.
  • The third column is invokable APIs that don't have a corresponding IAM action.
  • The fourth column is IAM actions that don't have a corresponding invokable API.
Service Action/API pairs APIs without actions Actions without APIs
ec2 618 2 16
sagemaker 336 0 14
iot 262 3 9
chime 259 0 50
connect 241 3 6
glue 209 4 33
quicksight 169 3 29
rds 162 0 5
lightsail 161 0 0
iam 159 0 12
ses 149 0 0
ssm 140 0 9
lex 137 4 8
redshift 133 0 22
mobiletargeting 122 0 1
servicecatalog 114 0 0
s3 113 60 45
iotwireless 112 0 1
greengrass 111 0 1
cloudfront 109 2 7
gamelift 108 0 0
datazone 107 0 25
dms 106 0 28
cognito-idp 103 0 4
deadline 102 0 1
medialive 92 0 0
config 92 0 0
backup 91 0 5
storagegateway 90 0 1
proton 87 0 24
es 87 0 10
sms-voice 87 0 0
networkmanager 85 0 0
comprehend 85 0 0
workmail 84 0 33
iotsitewise 84 0 2
cloudformation 82 0 11
omics 82 0 0
waf-regional 81 0 0
codecommit 79 0 11
securityhub 79 0 10
workspaces 79 0 1
macie2 79 0 0
waf 77 0 0
devicefarm 77 0 0
personalize 75 0 4
elasticache 75 0 2
rekognition 75 0 1
appstream 75 0 1
logs 74 0 8
opsworks 74 0 0
sso 73 0 53
frauddetector 73 0 1
imagebuilder 73 0 0
bedrock 72 0 17
wellarchitected 72 0 1
mgn 70 0 34
route53 70 0 0
guardduty 69 0 1
athena 68 0 11
route53resolver 68 0 0
ds 67 0 10
kendra 66 0 0
clouddirectory 66 0 0
forecast 65 0 5
autoscaling 65 0 0
appsync 64 0 6
elasticloadbalancing 64 0 1
lambda 63 3 5
directconnect 63 0 0
cleanrooms 63 0 0
auditmanager 62 0 0
datasync 60 0 0
transfer 59 1 0
ivs 59 0 0
inspector2 59 0 0
workspaces-web 58 0 0
geo 58 0 0
robomaker 57 0 2
dynamodb 56 5 13
elasticmapreduce 56 0 26
events 56 0 2
ecs 56 0 2
eks 56 0 1
globalaccelerator 56 0 0
qbusiness 55 0 10
redshift-serverless 55 0 1
organizations 55 0 0
wafv2 54 0 2
resiliencehub 54 0 0
profile 52 0 0
kafka 52 0 0
iotfleetwise 52 0 0
lakeformation 51 3 1
kms 51 1 3
vpc-lattice 51 1 0
mediaconnect 51 0 3
drs 50 0 40
finspace 50 0 9
codebuild 50 0 8
license-manager 50 0 0
nimble 49 0 2
lookoutequipment 49 0 0
cloudtrail 48 1 6
codeartifact 48 0 3
elasticbeanstalk 47 0 3
codedeploy 47 0 1
transcribe 46 0 3
fsx 45 0 8
appconfig 45 0 0
workdocs 44 0 17
mediatailor 44 0 0
databrew 44 0 0
ecr 43 0 5
wisdom 43 0 0
fms 42 0 0
sns 41 1 0
ce 41 0 12
kinesisvideo 40 0 3
iottwinmaker 40 0 0
codepipeline 40 0 0
ssm-contacts 39 0 1
mechanicalturk 39 0 0
cloudwatch 38 0 15
appmesh 38 0 4
memorydb 38 0 1
iotevents 38 0 1
evidently 38 0 0
swf 37 0 12
apprunner 37 0 5
states 37 0 2
aoss 37 0 2
inspector 37 0 0
amplify 37 0 0
shield 36 0 0
network-firewall 36 0 0
entityresolution 35 1 2
sms 35 0 2
panorama 34 0 2
route53domains 34 0 0
ram 34 0 0
iotanalytics 34 0 0
cases 34 0 0
m2 33 1 0
worklink 33 0 1
applicationinsights 33 0 1
tnb 33 0 0
groundstation 33 0 0
glacier 33 0 0
cloudhsm 33 0 0
route53-recovery-readiness 32 0 0
kinesis 32 0 0
billingconductor 32 0 0
elasticfilesystem 31 0 5
migrationhub-orchestrator 31 0 3
outposts 31 0 2
kinesisanalytics 31 0 1
ssm-incidents 31 0 0
securitylake 31 0 0
schemas 31 0 0
payment-cryptography 31 0 0
devops-guru 31 0 0
amplifybackend 31 0 0
access-analyzer 30 2 1
xray 30 0 3
dataexchange 30 0 2
rolesanywhere 30 0 0
lookoutmetrics 30 0 0
timestream 29 1 8
voiceid 29 0 2
detective 28 1 8
cloudsearch 28 1 4
discovery 28 0 1
amplifyuibuilder 28 0 1
mediaconvert 28 0 0
machinelearning 28 0 0
codestar-connections 27 0 10
codeconnections 27 0 10
managedblockchain 27 0 7
snowball 27 0 0
servicediscovery 27 0 0
b2bi 27 0 0
aps 26 0 16
private-networks 26 0 0
mediastore 26 0 0
iot1click 26 0 0
appfabric 26 0 0
comprehendmedical 25 1 0
appflow 25 0 6
backup-gateway 25 0 2
textract 25 0 0
pca-connector-ad 25 0 0
cleanrooms-ml 25 0 0
verifiedpermissions 24 2 0
mediapackagev2 24 0 3
fis 24 0 3
route53-recovery-control-config 24 0 1
refactor-spaces 24 0 0
batch 24 0 0
chatbot 23 0 5
cognito-identity 23 0 3
mq 23 0 1
secretsmanager 23 0 0
emr-containers 23 0 0
ecr-public 23 0 0
compute-optimizer 23 0 0
codeguru-profiler 23 0 0
acm-pca 23 0 0
migrationhub-strategy 22 0 9
lookoutvision 22 0 3
connect-campaigns 22 0 0
aws-marketplace 21 1 33
controltower 21 0 41
qldb 21 0 14
dax 21 0 9
app-integrations 21 0 6
synthetics 21 0 0
resource-explorer-2 21 0 0
mgh 21 0 0
sqs 20 3 0
datapipeline 19 0 2
translate 19 0 0
signer 19 0 0
servicequotas 19 0 0
sagemaker-geospatial 19 0 0
opsworks-cm 19 0 0
mediapackage 19 0 0
identitystore 19 0 0
grafana 19 0 0
resource-groups 18 0 6
codestar 18 0 4
ssm-sap 18 0 3
medical-imaging 18 0 0
cognito-sync 17 0 2
rum 17 0 0
mediapackage-vod 17 0 0
ivschat 17 0 0
elastictranscoder 17 0 0
neptune-db 16 24 17
support 16 0 9
thinclient 16 0 1
internetmonitor 16 0 1
simspaceweaver 16 0 0
route53profiles 16 0 0
kafkaconnect 16 0 0
docdb-elastic 16 0 0
honeycode 15 0 15
emr-serverless 15 0 1
oam 15 0 0
acm 15 0 0
codeguru-reviewer 14 0 3
serverlessrepo 14 0 1
osis 14 0 1
iotdeviceadvisor 14 0 0
health 14 0 0
cloud9 13 0 17
healthlake 13 0 8
braket 13 0 4
codeguru-security 13 0 2
snow-device-management 13 0 0
pi 13 0 0
codestar-notifications 13 0 0
application-autoscaling 13 0 0
scheduler 12 0 0
networkmonitor 12 0 0
firehose 12 0 0
bcm-data-exports 12 0 0
timestream-influxdb 11 0 0
repostspace 11 0 0
license-manager-user-subscriptions 11 0 0
arc-zonal-shift 11 0 0
airflow 11 0 0
trustedadvisor 10 1 41
supportapp 10 0 3
sdb 10 0 0
savingsplans 10 0 0
redshift-data 10 0 0
rbin 10 0 0
pipes 10 0 0
account 9 0 4
polly 9 0 0
managedblockchain-query 9 0 0
kendra-ranking 9 0 0
budgets 8 15 2
backup-storage 8 1 7
launchwizard 8 0 25
sts 8 0 4
tag 8 0 0
iotfleethub 8 0 0
dlm 8 0 0
cur 7 0 5
cost-optimization-hub 7 0 0
artifact 6 0 4
elastic-inference 6 0 1
rds-data 6 0 0
importexport 6 0 0
ebs 6 0 0
autoscaling-plans 6 0 0
application-cost-profiler 6 0 0
s3-outposts 5 0 43
pricing 5 0 0
route53-recovery-cluster 4 0 0
license-manager-linux-subscriptions 4 0 0
scn 3 0 13
controlcatalog 3 0 0
cassandra 2 12 15
ec2-instance-connect 2 0 1
workmailmessageflow 2 0 0
marketplacecommerceanalytics 2 0 0
finspace-api 1 30 0
sso-oauth 1 3 0
mobileanalytics 1 0 2
freetier 1 0 2
eks-auth 1 0 0
cloudtrail-data 1 0 0
apigateway 0 152 9
iotthingsgraph 0 35 0
execute-api 0 12 3
mobilehub 0 9 0
cloudcontrolapi 0 8 0
IoTSecuredTunneling 0 8 0
awsssoportal 0 4 0
a4b 0 0 96
sqlworkbench 0 0 70
iq 0 0 63
sso-directory 0 0 52
deepracer 0 0 51
appmesh-preview 0 0 39
neptune-graph 0 0 32
codecatalyst 0 0 30
one 0 0 27
s3-object-lambda 0 0 26
vendor-insights 0 0 24
deeplens 0 0 24
qapps 0 0 21
notifications 0 0 21
iotroborunner 0 0 20
freertos 0 0 20
kafka-cluster 0 0 19
monitron 0 0 18
deepcomposer 0 0 18
codewhisperer 0 0 18
elemental-appliances-software 0 0 17
bugbust 0 0 17
groundtruthlabeling 0 0 16
purchase-orders 0 0 14
application-transformation 0 0 14
tax 0 0 13
identity-sync 0 0 13
dbqms 0 0 13
billing 0 0 13
aws-marketplace-management 0 0 13
sagemaker-groundtruth-synthetic 0 0 12
q 0 0 10
elemental-activations 0 0 10
ts 0 0 9
notifications-contacts 0 0 9
iq-permission 0 0 9
cloudshell 0 0 9
aws-portal 0 0 9
activate 0 0 8
wickr 0 0 7
s3express 0 0 7
payments 0 0 7
networkmanager-chat 0 0 7
ec2messages 0 0 6
cloudfront-keyvaluestore 0 0 6
tiros 0 0 5
iot-device-tester 0 0 5
elemental-support-cases 0 0 5
supportplans 0 0 4
ssmmessages 0 0 4
iotjobsdata 0 0 4
invoicing 0 0 4
customer-verification 0 0 4
codedeploy-commands-secure 0 0 4
a2c 0 0 4
ssm-guiconnect 0 0 3
resource-explorer 0 0 3
partnercentral-account-management 0 0 3
mapcredits 0 0 3
identitystore-auth 0 0 3
awsconnector 0 0 3
signin 0 0 2
consolidatedbilling 0 0 2
consoleapp 0 0 2
wam 0 0 1
vpc-lattice-svcs 0 0 1
verified-access 0 0 1
sustainability 0 0 1
serviceextract 0 0 1
rhelkb 0 0 1
rds-db 0 0 1
mediaimport 0 0 1
inspector-scan 0 0 1
elemental-support-content 0 0 1
codeguru 0 0 1
arsenal 0 0 1

Most common action prefixes:

Prefix Count
List 2733
Get 2480
Delete 1961
Create 1828
Describe 1706
Update 1566
Put 472
Start 388
Tag 267
Untag 263

trackiam's People

Contributors

actions-user avatar aidansteele avatar ollytheninja avatar rupertbg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trackiam's Issues

Allow for YAML files to be commented, etc

Right now we obliterate the contents of the file on each generation. Instead we should parse the files and determine which records are already in there. Then we can append the new entries. This way we can add human comments to the files or split up big ones, etc.

Caveat: when moving an entry from the "actions without APIs" or "APIs without actions" lists to the sane list, that involves reordering - probably want to bring comments along for the ride somehow 🤔

How to interpret the execute-api service APIs in the "APIs without an IAM action" section?

In https://github.com/glassechidna/trackiam/blob/master/services/execute-api.yml, under the "# APIs without an IAM action section, I can see there are some APIs that look like IoT APIs, but I'm not sure how they're related to the execute-api service (which I usually associate with API Gateway).

There's also the execute-api:UpdateTopicRuleDestination API, which I don't find an equivalent for in the IoT service yml, but I do see listed in the AWS API docs - UpdateTopicRuleDestination.

So I guess my question is how do these execute-api APIs relate to IoT, and should I use one over the other when looking for a definitive list of IoT APIs? Thanks!

AWS IP ranges

  • regions
  • availability zones?
  • services
  • different detection mechanisms (published json, dns polling, etc)

Publish change notifications

  • If we create a GitHub "release" for each commit, people can subscribe to the repo to receive notifications.
  • We can also create some public SNS topics and publish messages to them whenever a change is committed.
  • Twitter too

Track which actions get recorded in CloudTrail

Could use an IAM role with zero permissions, so no costs are incurred. Though I think some services might only record successful API calls. We should also compare results to any public docs from AWS

Track which AWS services support Resource based policies

This feature would help with identifying when potentially dangerous IAM actions - such as those that could cause resources to be exposed to anonymous users (Principal = *).

The automation would involve scraping this page to flag changes to AWS services under the “resource based policies” column.

Here’s an example of how this could help: AWS recently announced that CodeBuild supports resource based policies. However, the associated IAM actions - codebuild:PutResourcePolicy and codebuild:DeleteResourcePolicy were labeled as “Write” access level instead of the “Permissions management” level under the actions, resources, and condition keys page for CodeBuild. This happens on a regular basis, which has ramifications in two major cases:

  1. The AWS visual policy editor relies on the accuracy of the actions, resources, and condition keys page. It allows you to select all actions under an access level. I cover this material here: https://policy-sentry.readthedocs.io/en/latest/introduction/comparison-to-similar-tools.html#aws-console-visual-policy-editor. Obviously, if you want to grant someone the ability to “write” to CodeBuild, that doesn’t mean you want them to share CodeBuild projects with external accounts or the internet at large. If the IAM actions tracker tool tracked the changes to the Resource based policies in the “AWS services that support IAM” documentation, it would help us identify which services we should inspect for the IAM actions that grant privileges to modify those resource based policies. It will also help us notify AWS that they should fix the documentation.
  2. The issue of incorrect Access level labeling is so severe that we had to build in an Access Level Overrides file in Policy Sentry: https://github.com/salesforce/policy_sentry/blob/master/policy_sentry/shared/data/access-level-overrides.yml
  3. Since we rely on the accuracy of this documentation for Policy Sentry to automate the creation of least privilege IAM policies, Our attitude was that we couldn’t wait for AWS to make fixes to the access levels - especially when it comes to Permissions management actions that are mislabeled. If IAM Actions tracker were able to track the changes to the “AWS services that support IAM” page, we could quickly make changes to the overrides file, rather than the informal manual searching method that we take right now.

Let me know if you have any questions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.