|
21 | 21 |
|
22 | 22 | import argparse
|
23 | 23 | # [START iam_create_service_account]
|
24 |
| -# [START iam_list_service_accounts] |
| 24 | +# [START iam_list_service_account] |
25 | 25 | # [START iam_rename_service_account]
|
| 26 | +# [START iam_disable_service_account] |
| 27 | +# [START iam_enable_service_account] |
26 | 28 | # [START iam_delete_service_account]
|
27 | 29 | import os
|
28 | 30 |
|
|
32 | 34 | # [END iam_create_service_account]
|
33 | 35 | # [END iam_list_service_accounts]
|
34 | 36 | # [END iam_rename_service_account]
|
| 37 | +# [END iam_disable_service_account] |
| 38 | +# [END iam_enable_service_account] |
35 | 39 | # [END iam_delete_service_account]
|
36 | 40 |
|
37 | 41 |
|
@@ -110,6 +114,43 @@ def rename_service_account(email, new_display_name):
|
110 | 114 | # [END iam_rename_service_account]
|
111 | 115 |
|
112 | 116 |
|
| 117 | +# [START iam_disable_service_account] |
| 118 | +def disable_service_account(email): |
| 119 | + """Disables a service account.""" |
| 120 | + |
| 121 | + credentials = service_account.Credentials.from_service_account_file( |
| 122 | + filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'], |
| 123 | + scopes=['https://www.googleapis.com/auth/cloud-platform']) |
| 124 | + |
| 125 | + service = googleapiclient.discovery.build( |
| 126 | + 'iam', 'v1', credentials=credentials) |
| 127 | + |
| 128 | + service.projects().serviceAccounts().disable( |
| 129 | + name='projects/-/serviceAccounts/' + email).execute() |
| 130 | + |
| 131 | + print("Disabled service account :" + email) |
| 132 | +# [END iam_disable_service_account] |
| 133 | + |
| 134 | +# [START iam_enable_service_account] |
| 135 | + |
| 136 | + |
| 137 | +def enable_service_account(email): |
| 138 | + """Enables a service account.""" |
| 139 | + |
| 140 | + credentials = service_account.Credentials.from_service_account_file( |
| 141 | + filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'], |
| 142 | + scopes=['https://www.googleapis.com/auth/cloud-platform']) |
| 143 | + |
| 144 | + service = googleapiclient.discovery.build( |
| 145 | + 'iam', 'v1', credentials=credentials) |
| 146 | + |
| 147 | + service.projects().serviceAccounts().enable( |
| 148 | + name='projects/-/serviceAccounts/' + email).execute() |
| 149 | + |
| 150 | + print("Disabled service account :" + email) |
| 151 | +# [END iam_enable_service_account] |
| 152 | + |
| 153 | + |
113 | 154 | # [START iam_delete_service_account]
|
114 | 155 | def delete_service_account(email):
|
115 | 156 | """Deletes a service account."""
|
@@ -149,10 +190,20 @@ def main():
|
149 | 190 |
|
150 | 191 | # Rename
|
151 | 192 | rename_parser = subparsers.add_parser(
|
152 |
| - 'delete', help=rename_service_account.__doc__) |
| 193 | + 'rename', help=rename_service_account.__doc__) |
153 | 194 | rename_parser.add_argument('email')
|
154 | 195 | rename_parser.add_argument('new_display_name')
|
155 | 196 |
|
| 197 | + # Disable |
| 198 | + rename_parser = subparsers.add_parser( |
| 199 | + 'disable', help=disable_service_account.__doc__) |
| 200 | + list_parser.addargument('email') |
| 201 | + |
| 202 | + # Enable |
| 203 | + rename_parser = subparsers.add_parser( |
| 204 | + 'enable', help=enable_service_account.__doc__) |
| 205 | + list_parser.addargument('email') |
| 206 | + |
156 | 207 | # Delete
|
157 | 208 | delete_parser = subparsers.add_parser(
|
158 | 209 | 'delete', help=delete_service_account.__doc__)
|
|
0 commit comments