IAM使用示例 AWS CLI - AWS Command Line Interface

本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM使用示例 AWS CLI

以下代码示例向您展示了如何使用with来执行操作和实现常见场景IAM。 AWS Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例显示了如何使用add-client-id-to-open-id-connect-provider

AWS CLI

向 Open-ID Connect () 提供商添加客户端 ID(受众OIDC)

以下add-client-id-to-open-id-connect-provider命令将客户端 ID my-application-ID 添加到名为的OIDC提供商server.example.com

aws iam add-client-id-to-open-id-connect-provider \ --client-id my-application-ID \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com

此命令不生成任何输出。

要创建OIDC提供程序,请使用create-open-id-connect-provider命令。

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用add-role-to-instance-profile

AWS CLI

向实例配置文件添加角色

以下 add-role-to-instance-profile 命令可将名为 S3Access 的角色添加到名为 Webserver 的实例配置文件。

aws iam add-role-to-instance-profile \ --role-name S3Access \ --instance-profile-name Webserver

此命令不生成任何输出。

要创建实例配置文件,请使用 create-instance-profile 命令。

有关更多信息,请参阅AWS IAM用户指南中的使用IAM角色向在 Amazon EC2 实例上运行的应用程序授予权限

以下代码示例显示了如何使用add-user-to-group

AWS CLI

将用户添加到IAM群组

以下add-user-to-group命令将名为的IAM用户Bob添加到名为的IAM组中Admins

aws iam add-user-to-group \ --user-name Bob \ --group-name Admins

此命令不生成任何输出。

有关更多信息,请参阅《用户指南》中的在IAM用户组中添加和删除AWS IAM用户

  • 有关API详细信息,请参阅AWS CLI 命令参考AddUserToGroup中的。

以下代码示例显示了如何使用attach-group-policy

AWS CLI

将托管策略附加到IAM群组

以下attach-group-policy命令将名为的 AWS 托管策略附加ReadOnlyAccess到名为的IAM组Finance

aws iam attach-group-policy \ --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess \ --group-name Finance

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的托管策略和内联策略

以下代码示例显示了如何使用attach-role-policy

AWS CLI

将托管策略附加到IAM角色

以下attach-role-policy命令将名为的 AWS 托管策略附加ReadOnlyAccess到名为的IAM角色ReadOnlyRole

aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess \ --role-name ReadOnlyRole

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的托管策略和内联策略

  • 有关API详细信息,请参阅AWS CLI 命令参考AttachRolePolicy中的。

以下代码示例显示了如何使用attach-user-policy

AWS CLI

将托管策略附加到IAM用户

以下attach-user-policy命令将名为的 AWS 托管策略附加AdministratorAccess到名为的IAM用户Alice

aws iam attach-user-policy \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess \ --user-name Alice

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的托管策略和内联策略

  • 有关API详细信息,请参阅AWS CLI 命令参考AttachUserPolicy中的。

以下代码示例显示了如何使用change-password

AWS CLI

更改IAM用户的密码

要更改IAM用户的密码,我们建议使用--cli-input-json参数传递包含您的旧密码和新密码的JSON文件。通过此方法,您可以使用含有非字母数字字符的强密码。将密码作为命令行参数传递时,可能难以使用含有非字母数字字符的密码。要使用 --cli-input-json 参数,请先使用带 --generate-cli-skeleton 参数的 change-password 命令,如以下示例所示。

aws iam change-password \ --generate-cli-skeleton > change-password.json

前面的命令创建了一个名为 change-password.json 的JSON文件,你可以用它来填写新旧密码。例如,该文件可能如下所示。

{ "OldPassword": "3s0K_;xh4~8XXI", "NewPassword": "]35d/{pB9Fo9wJ" }

接下来,要更改密码,请再次使用该change-password命令,这次是传递--cli-input-json参数来指定您的JSON文件。以下change-password命令将--cli-input-json参数与名为 change-passwor JSON d.json 的文件一起使用。

aws iam change-password \ --cli-input-json file://change-password.json

此命令不生成任何输出。

此命令只能由IAM用户调用。如果使用 AWS 账户(根)凭据调用此命令,则该命令将返回InvalidUserType错误。

有关更多信息,请参阅《IAM用户指南》中的AWS IAM用户如何更改自己的密码

  • 有关API详细信息,请参阅AWS CLI 命令参考ChangePassword中的。

以下代码示例显示了如何使用create-access-key

AWS CLI

为IAM用户创建访问密钥

以下create-access-key命令为名为的IAM用户创建访问密钥(访问密钥 ID 和私有访问密钥)Bob

aws iam create-access-key \ --user-name Bob

输出:

{ "AccessKey": { "UserName": "Bob", "Status": "Active", "CreateDate": "2015-03-09T18:39:23.411Z", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } }

将秘密访问密钥存储在安全位置。如果访问密钥丢失,将无法恢复,必须创建一个新的访问密钥。

有关更多信息,请参阅《用户指南》中的AWS IAM管理IAM用户访问密钥

  • 有关API详细信息,请参阅AWS CLI 命令参考CreateAccessKey中的。

以下代码示例显示了如何使用create-account-alias

AWS CLI

要创建账户别名

以下create-account-alias命令examplecorp为您的 AWS 账户创建别名。

aws iam create-account-alias \ --account-alias examplecorp

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的您的 AWS 账户 ID 及其别名

以下代码示例显示了如何使用create-group

AWS CLI

创建IAM群组

以下create-group命令创建一个名为的IAM组Admins

aws iam create-group \ --group-name Admins

输出:

{ "Group": { "Path": "/", "CreateDate": "2015-03-09T20:30:24.940Z", "GroupId": "AIDGPMS9RO4H3FEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/Admins", "GroupName": "Admins" } }

有关更多信息,请参阅《IAM用户指南》中的创建AWS IAM用户

  • 有关API详细信息,请参阅AWS CLI 命令参考CreateGroup中的。

以下代码示例显示了如何使用create-instance-profile

AWS CLI

要创建实例配置文件

以下 create-instance-profile 命令将创建名为 Webserver 的实例配置文件。

aws iam create-instance-profile \ --instance-profile-name Webserver

输出:

{ "InstanceProfile": { "InstanceProfileId": "AIPAJMBYC7DLSPEXAMPLE", "Roles": [], "CreateDate": "2015-03-09T20:33:19.626Z", "InstanceProfileName": "Webserver", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/Webserver" } }

要将角色添加到实例配置文件,请使用 add-role-to-instance-profile 命令。

有关更多信息,请参阅AWS IAM用户指南中的使用IAM角色向在 Amazon EC2 实例上运行的应用程序授予权限

以下代码示例显示了如何使用create-login-profile

AWS CLI

为IAM用户创建密码

要为IAM用户创建密码,我们建议使用--cli-input-json参数传递包含密码的JSON文件。通过此方法,您可以创建含有非字母数字字符的强密码。将密码作为命令行参数传递时,可能难以创建含有非字母数字字符的密码。

要使用 --cli-input-json 参数,请先使用带 --generate-cli-skeleton 参数的 create-login-profile 命令,如以下示例所示。

aws iam create-login-profile \ --generate-cli-skeleton > create-login-profile.json

前面的命令创建了一个名为 create-login-profile .json 的JSON文件,你可以用它来填写后续create-login-profile命令的信息。例如:

{ "UserName": "Bob", "Password": "&1-3a6u:RA0djs", "PasswordResetRequired": true }

接下来,要为IAM用户创建密码,请再次使用该create-login-profile命令,这次传递--cli-input-json参数来指定您的JSON文件。以下create-login-profile命令将--cli-input-json参数与名为 create-login-profile .json JSON 的文件一起使用。

aws iam create-login-profile \ --cli-input-json file://create-login-profile.json

输出:

{ "LoginProfile": { "UserName": "Bob", "CreateDate": "2015-03-10T20:55:40.274Z", "PasswordResetRequired": true } }

如果新密码违反了账户密码策略,则该命令将返回 PasswordPolicyViolation 错误。

要更改已有密码用户的密码,请使用 update-login-profile。要为账户设置密码策略,请使用 update-account-password-policy 命令。

如果账户密码策略允许他们这样做,则IAM用户可以使用change-password命令更改自己的密码。

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户密码

以下代码示例显示了如何使用create-open-id-connect-provider

AWS CLI

创建 OpenID Connect () OIDC 提供程序

要创建 OpenID Connect (OIDC) 提供程序,我们建议使用--cli-input-json参数传递包含所需参数的JSON文件。创建OIDC提供程序时,必须传递提供URL者的,并且URL必须以开头https://。可能很难将URL作为命令行参数传递,因为冒号 (:) 和正斜杠 (/) 字符在某些命令行环境中具有特殊含义。使用 --cli-input-json 参数可以绕过这一限制。

要使用 --cli-input-json 参数,请先使用带 --generate-cli-skeleton 参数的 create-open-id-connect-provider 命令,如以下示例所示。

aws iam create-open-id-connect-provider \ --generate-cli-skeleton > create-open-id-connect-provider.json

前面的命令创建了一个名为 create-open-id-connect-provider.json 的JSON文件,你可以用它来填写后续命令的信息。create-open-id-connect-provider例如:

{ "Url": "https://server.example.com", "ClientIDList": [ "example-application-ID" ], "ThumbprintList": [ "c3768084dfb3d2b68b7897bf5f565da8eEXAMPLE" ] }

接下来,要创建 OpenID Connect (OIDC) 提供程序,请再次使用该create-open-id-connect-provider命令,这次传递--cli-input-json参数来指定您的JSON文件。以下create-open-id-connect-provider命令将--cli-input-json参数与名为 create-open-id-connect-provider JSON .json 的文件一起使用。

aws iam create-open-id-connect-provider \ --cli-input-json file://create-open-id-connect-provider.json

输出:

{ "OpenIDConnectProviderArn": "arn:aws:iam::123456789012:oidc-provider/server.example.com" }

有关OIDC提供商的更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

有关获取OIDC提供者指纹的更多信息,请参阅《用户指南》中的获取 OpenID Connect 身份提供商的指纹。AWS IAM

以下代码示例显示了如何使用create-policy-version

AWS CLI

要创建新版本的托管策略

此示例创建了IAM策略的新v2版本,其版本ARN为arn:aws:iam::123456789012:policy/MyPolicy,并将其设为默认版本。

aws iam create-policy-version \ --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ --policy-document file://NewPolicyVersion.json \ --set-as-default

输出:

{ "PolicyVersion": { "CreateDate": "2015-06-16T18:56:03.721Z", "VersionId": "v2", "IsDefaultVersion": true } }

有关更多信息,请参阅《AWS IAM用户指南》中的版本控制IAM策略

以下代码示例显示了如何使用create-policy

AWS CLI

示例 1:创建客户管理型策略

以下命令将创建名为 my-policy 的客户管理型策略。

aws iam create-policy \ --policy-name my-policy \ --policy-document file://policy

该文件policy是当前文件夹中的JSON文档,它授予对名为的 Amazon S3 存储桶中该shared文件夹的只读权限my-bucket

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::my-bucket/shared/*" ] } ] }

输出:

{ "Policy": { "PolicyName": "my-policy", "CreateDate": "2015-06-01T19:31:18.620Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "ZXR6A36LTYANPAI7NJ5UV", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::0123456789012:policy/my-policy", "UpdateDate": "2015-06-01T19:31:18.620Z" } }

有关使用文件作为字符串参数输入的更多信息,请参阅AWS CLI用户指南 AWS CLI中的为指定参数值

示例 2:创建带有描述的客户管理型策略

以下命令将创建名为 my-policy 且带有不可变描述的客户管理型策略:

aws iam create-policy \ --policy-name my-policy \ --policy-document file://policy.json \ --description "This policy grants access to all Put, Get, and List actions for my-bucket"

该文件policy.json是当前文件夹中的一个JSON文档,它允许访问名为的 Amazon S3 存储桶的所有 “上传”、“列出” 和 “获取” 操作my-bucket

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket*", "s3:PutBucket*", "s3:GetBucket*" ], "Resource": [ "arn:aws:s3:::my-bucket" ] } ] }

输出:

{ "Policy": { "PolicyName": "my-policy", "PolicyId": "ANPAWGSUGIDPEXAMPLE", "Arn": "arn:aws:iam::123456789012:policy/my-policy", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2023-05-24T22:38:47+00:00", "UpdateDate": "2023-05-24T22:38:47+00:00" } }

有关基于身份的策略的更多信息,请参阅《用户指南》中的基于身份的策略和基于资源的策略。AWS IAM

示例 3:创建带有标签的客户管理型策略

以下命令将创建名为 my-policy 且带有标签的客户管理型策略。此示例使用带有以下JSON格式标签的--tags参数标志:'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'. 或者,--tags 标志可与简写格式的标签一起使用:'Key=Department,Value=Accounting Key=Location,Value=Seattle'

aws iam create-policy \ --policy-name my-policy \ --policy-document file://policy.json \ --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'

该文件policy.json是当前文件夹中的一个JSON文档,它允许访问名为的 Amazon S3 存储桶的所有 “上传”、“列出” 和 “获取” 操作my-bucket

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket*", "s3:PutBucket*", "s3:GetBucket*" ], "Resource": [ "arn:aws:s3:::my-bucket" ] } ] }

输出:

{ "Policy": { "PolicyName": "my-policy", "PolicyId": "ANPAWGSUGIDPEXAMPLE", "Arn": "arn:aws:iam::12345678012:policy/my-policy", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2023-05-24T23:16:39+00:00", "UpdateDate": "2023-05-24T23:16:39+00:00", "Tags": [ { "Key": "Department", "Value": "Accounting" }, "Key": "Location", "Value": "Seattle" { ] } }

有关标记策略的更多信息,请参阅《AWS IAM用户指南》中的为客户托管策略添加标签

  • 有关API详细信息,请参阅AWS CLI 命令参考CreatePolicy中的。

以下代码示例显示了如何使用create-role

AWS CLI

示例 1:创建IAM角色

以下 create-role 命令将创建一个名为 Test-Role 的角色并对其附加信任策略。

aws iam create-role \ --role-name Test-Role \ --assume-role-policy-document file://Test-Role-Trust-Policy.json

输出:

{ "Role": { "AssumeRolePolicyDocument": "<URL-encoded-JSON>", "RoleId": "AKIAIOSFODNN7EXAMPLE", "CreateDate": "2013-06-07T20:43:32.821Z", "RoleName": "Test-Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/Test-Role" } }

信任策略定义为 test -role-trust- Policy.json JSON 文件中的文档。(文件名和扩展名没有意义。) 信任策略必须指定主体。

要将权限策略附加到角色,请使用 put-role-policy 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

示例 2:创建具有指定最大会话持续时间的IAM角色

以下 create-role 命令将创建一个名为 Test-Role 的角色,并将最长会话持续时间设置为 7200 秒(2 小时)。

aws iam create-role \ --role-name Test-Role \ --assume-role-policy-document file://Test-Role-Trust-Policy.json \ --max-session-duration 7200

输出:

{ "Role": { "Path": "/", "RoleName": "Test-Role", "RoleId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::12345678012:role/Test-Role", "CreateDate": "2023-05-24T23:50:25+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678012:root" }, "Action": "sts:AssumeRole" } ] } } }

有关更多信息,请参阅AWS IAM用户指南中的修改角色的最大会话持续时间 (AWS API)

示例 3:创建带有标签的IAM角色

以下命令创建Test-Role带有标签的IAM角色。此示例使用带有以下JSON格式标签的--tags参数标志:'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'. 或者,--tags 标志可与简写格式的标签一起使用:'Key=Department,Value=Accounting Key=Location,Value=Seattle'

aws iam create-role \ --role-name Test-Role \ --assume-role-policy-document file://Test-Role-Trust-Policy.json \ --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'

输出:

{ "Role": { "Path": "/", "RoleName": "Test-Role", "RoleId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/Test-Role", "CreateDate": "2023-05-25T23:29:41+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole" } ] }, "Tags": [ { "Key": "Department", "Value": "Accounting" }, { "Key": "Location", "Value": "Seattle" } ] } }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM角色添加标签

  • 有关API详细信息,请参阅AWS CLI 命令参考CreateRole中的。

以下代码示例显示了如何使用create-saml-provider

AWS CLI

创建提供SAML商

此示例在 named 中IAM创建了一个新的SAML提供者MySAMLProvider。它由文件中的SAML元数据文档描述SAMLMetaData.xml

aws iam create-saml-provider \ --saml-metadata-document file://SAMLMetaData.xml \ --name MySAMLProvider

输出:

{ "SAMLProviderArn": "arn:aws:iam::123456789012:saml-provider/MySAMLProvider" }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAMSAML身份提供商

  • 有关API详细信息,请参阅reateSAMLProvider《AWS CLI 命令参考》中的 C

以下代码示例显示了如何使用create-service-linked-role

AWS CLI

要创建服务相关角色

以下create-service-linked-role示例为指定 AWS 服务创建服务相关角色并附加指定的描述。

aws iam create-service-linked-role \ --aws-service-name lex.amazonaws.com \ --description "My service-linked role to support Lex"

输出:

{ "Role": { "Path": "/aws-service-role/lex.amazonaws.com/", "RoleName": "AWSServiceRoleForLexBots", "RoleId": "AROA1234567890EXAMPLE", "Arn": "arn:aws:iam::1234567890:role/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots", "CreateDate": "2019-04-17T20:34:14+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "lex.amazonaws.com" ] } } ] } } }

有关更多信息,请参阅《AWS IAM用户指南》中的使用服务相关角色

以下代码示例显示了如何使用create-service-specific-credential

AWS CLI

为用户创建一组特定于服务的凭证

以下create-service-specific-credential示例创建了一个用户名和密码,该用户名和密码只能用于访问已配置的服务。

aws iam create-service-specific-credential \ --user-name sofia \ --service-name codecommit.amazonaws.com

输出:

{ "ServiceSpecificCredential": { "CreateDate": "2019-04-18T20:45:36+00:00", "ServiceName": "codecommit.amazonaws.com", "ServiceUserName": "sofia-at-123456789012", "ServicePassword": "k1zPZM6uVxMQ3oxqgoYlNuJPyRTZ1vREs76zTQE3eJk=", "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", "UserName": "sofia", "Status": "Active" } }

有关更多信息,请参阅AWS CodeCommit 用户指南 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用create-user

AWS CLI

示例 1:创建IAM用户

以下create-user命令在当前账户Bob中创建名为的IAM用户。

aws iam create-user \ --user-name Bob

输出:

{ "User": { "UserName": "Bob", "Path": "/", "CreateDate": "2023-06-08T03:20:41.270Z", "UserId": "AIDAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Bob" } }

有关更多信息,请参阅《IAM用户指南》中的在您的 AWS 账户中创建AWSIAM用户

示例 2:在指定路径上创建IAM用户

以下create-user命令在指定路径Bob上创建名为的IAM用户。

aws iam create-user \ --user-name Bob \ --path /division_abc/subdivision_xyz/

输出:

{ "User": { "Path": "/division_abc/subdivision_xyz/", "UserName": "Bob", "UserId": "AIDAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::12345678012:user/division_abc/subdivision_xyz/Bob", "CreateDate": "2023-05-24T18:20:17+00:00" } }

有关更多信息,请参阅《AWS IAM用户指南》中的IAM标识符

示例 3:使用标签创建IAM用户

以下create-user命令创建一个名为Bob且带有标签的IAM用户。此示例使用带有以下JSON格式标签的--tags参数标志:'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'. 或者,--tags 标志可与简写格式的标签一起使用:'Key=Department,Value=Accounting Key=Location,Value=Seattle'

aws iam create-user \ --user-name Bob \ --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'

输出:

{ "User": { "Path": "/", "UserName": "Bob", "UserId": "AIDAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::12345678012:user/Bob", "CreateDate": "2023-05-25T17:14:21+00:00", "Tags": [ { "Key": "Department", "Value": "Accounting" }, { "Key": "Location", "Value": "Seattle" } ] } }

有关更多信息,请参阅《用户指南》中的为IAM AWS IAM用户添加标签

示例 3:创建具有设定权限边界的IAM用户

以下create-user命令创建一个名为、权限边界为 Bob AmazonS3 FullAccess 的IAM用户。

aws iam create-user \ --user-name Bob \ --permissions-boundary arn:aws:iam::aws:policy/AmazonS3FullAccess

输出:

{ "User": { "Path": "/", "UserName": "Bob", "UserId": "AIDAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::12345678012:user/Bob", "CreateDate": "2023-05-24T17:50:53+00:00", "PermissionsBoundary": { "PermissionsBoundaryType": "Policy", "PermissionsBoundaryArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess" } } }

有关更多信息,请参阅《AWS IAM用户指南》中的IAM实体的权限边界

  • 有关API详细信息,请参阅AWS CLI 命令参考CreateUser中的。

以下代码示例显示了如何使用create-virtual-mfa-device

AWS CLI

创建虚拟MFA设备

此示例创建了一个名为的新虚拟MFA设备BobsMFADevice。它会创建一个包含引导信息的、名为 QRCode.png 的文件,并将其放在 C:/ 目录中。本示例中使用的引导方法为 QRCodePNG

aws iam create-virtual-mfa-device \ --virtual-mfa-device-name BobsMFADevice \ --outfile C:/QRCode.png \ --bootstrap-method QRCodePNG

输出:

{ "VirtualMFADevice": { "SerialNumber": "arn:aws:iam::210987654321:mfa/BobsMFADevice" }

有关更多信息,请参阅《AWS IAM用户指南》 AWS中的使用多重身份验证 (MFA)

以下代码示例显示了如何使用deactivate-mfa-device

AWS CLI

停用设备 MFA

此命令使用与用户关联的虚拟MFA设备停用。ARN arn:aws:iam::210987654321:mfa/BobsMFADevice Bob

aws iam deactivate-mfa-device \ --user-name Bob \ --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》 AWS中的使用多重身份验证 (MFA)

以下代码示例显示了如何使用decode-authorization-message

AWS CLI

解码授权失败消息

以下decode-authorization-message示例对尝试在没有所需权限的情况下启动实例时EC2控制台返回的消息进行解码。

aws sts decode-authorization-message \ --encoded-message lxzA8VEjEvu-s0TTt3PgYCXik9YakOqsrFJGRZR98xNcyWAxwRq14xIvd-npzbgTevuufCTbjeBAaDARg9cbTK1rJbg3awM33o-Vy3ebPErE2-mWR9hVYdvX-0zKgVOWF9pWjZaJSMqxB-aLXo-I_8TTvBq88x8IFPbMArNdpu0IjxDjzf22PF3SOE3XvIQ-_PEO0aUqHCCcsSrFtvxm6yQD1nbm6VTIVrfa0Bzy8lsoMo7SjIaJ2r5vph6SY5vCCwg6o2JKe3hIHTa8zRrDbZSFMkcXOT6EOPkQXmaBsAC6ciG7Pz1JnEOvuj5NSTlSMljrAXczWuRKAs5GsMYiU8KZXZhokVzdQCUZkS5aVHumZbadu0io53jpgZqhMqvS4fyfK4auK0yKRMtS6JCXPlhkolEs7ZMFA0RVkutqhQqpSDPB5SX5l00lYipWyFK0_AyAx60vumPuVh8P0AzXwdFsT0l4D0m42NFIKxbWXsoJdqaOqVFyFEd0-Xx9AYAAIr6bhcis7C__bZh4dlAAWooHFGKgfoJcWGwgdzgbu9hWyVvKTpeot5hsb8qANYjJRCPXTKpi6PZfdijIkwb6gDMEsJ9qMtr62qP_989mwmtNgnVvBa_ir6oxJxVe_kL9SH1j5nsGDxQFajvPQhxWOHvEQIg_H0bnKWk

输出格式为单行文本字符串,您可以使用任何JSONJSON文本处理器对其进行解析。

{ "DecodedMessage": "{\"allowed\":false,\"explicitDeny\":false,\"matchedStatements\":{\"items\":[]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"AIDAV3ZUEFP6J7GY7O6LO\",\"name\":\"chain-user\",\"arn\":\"arn:aws:iam::403299380220:user/chain-user\"},\"action\":\"ec2:RunInstances\",\"resource\":\"arn:aws:ec2:us-east-2:403299380220:instance/*\",\"conditions\":{\"items\":[{\"key\":\"ec2:InstanceMarketType\",\"values\":{\"items\":[{\"value\":\"on-demand\"}]}},{\"key\":\"aws:Resource\",\"values\":{\"items\":[{\"value\":\"instance/*\"}]}},{\"key\":\"aws:Account\",\"values\":{\"items\":[{\"value\":\"403299380220\"}]}},{\"key\":\"ec2:AvailabilityZone\",\"values\":{\"items\":[{\"value\":\"us-east-2b\"}]}},{\"key\":\"ec2:ebsOptimized\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:IsLaunchTemplateResource\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:InstanceType\",\"values\":{\"items\":[{\"value\":\"t2.micro\"}]}},{\"key\":\"ec2:RootDeviceType\",\"values\":{\"items\":[{\"value\":\"ebs\"}]}},{\"key\":\"aws:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},{\"key\":\"aws:Service\",\"values\":{\"items\":[{\"value\":\"ec2\"}]}},{\"key\":\"ec2:InstanceID\",\"values\":{\"items\":[{\"value\":\"*\"}]}},{\"key\":\"aws:Type\",\"values\":{\"items\":[{\"value\":\"instance\"}]}},{\"key\":\"ec2:Tenancy\",\"values\":{\"items\":[{\"value\":\"default\"}]}},{\"key\":\"ec2:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},{\"key\":\"aws:ARN\",\"values\":{\"items\":[{\"value\":\"arn:aws:ec2:us-east-2:403299380220:instance/*\"}]}}]}}}" }

有关更多信息,请参阅在EC2实例启动期间收到 “UnauthorizedOperation” 错误后如何解码授权失败消息? 在 re AWS : post 中。

以下代码示例显示了如何使用delete-access-key

AWS CLI

删除IAM用户的访问密钥

以下delete-access-key命令删除名为的IAM用户的指定访问密钥(访问密钥 ID 和私有访问密钥)Bob

aws iam delete-access-key \ --access-key-id AKIDPMS9RO4H3FEXAMPLE \ --user-name Bob

此命令不生成任何输出。

要列出为IAM用户定义的访问密钥,请使用list-access-keys命令。

有关更多信息,请参阅《用户指南》中的AWS IAM管理IAM用户访问密钥

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteAccessKey中的。

以下代码示例显示了如何使用delete-account-alias

AWS CLI

要删除账户别名

以下 delete-account-alias 命令将删除当前账户的别名 mycompany

aws iam delete-account-alias \ --account-alias mycompany

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的您的 AWS 账户 ID 及其别名

以下代码示例显示了如何使用delete-account-password-policy

AWS CLI

删除当前账户密码策略

以下 delete-account-password-policy 命令将删除当前账户的密码策略。

aws iam delete-account-password-policy

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM用户设置账户密码策略

以下代码示例显示了如何使用delete-group-policy

AWS CLI

从IAM群组中删除策略

以下 delete-group-policy 命令可将名为 ExamplePolicy 的策略从名为 Admins 的组中删除。

aws iam delete-group-policy \ --group-name Admins \ --policy-name ExamplePolicy

此命令不生成任何输出。

要查看附加到组的策略,请使用 list-group-policies 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的管理IAM策略

以下代码示例显示了如何使用delete-group

AWS CLI

删除群IAM组

以下delete-group命令删除名为的IAM组MyTestGroup

aws iam delete-group \ --group-name MyTestGroup

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的删除AWS IAM用户

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteGroup中的。

以下代码示例显示了如何使用delete-instance-profile

AWS CLI

要删除实例配置文件

以下 delete-instance-profile 命令将删除名为 ExampleInstanceProfile 的实例配置文件。

aws iam delete-instance-profile \ --instance-profile-name ExampleInstanceProfile

此命令不生成任何输出。

有关更多信息,请参阅AWS IAM用户指南中的使用实例配置文件

以下代码示例显示了如何使用delete-login-profile

AWS CLI

删除IAM用户的密码

以下delete-login-profile命令删除名为的IAM用户的密码Bob

aws iam delete-login-profile \ --user-name Bob

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户密码

以下代码示例显示了如何使用delete-open-id-connect-provider

AWS CLI

删除 O IAM penID Connect 身份提供商

此示例删除了连接到该IAMOIDC提供程序的提供商example.oidcprovider.com

aws iam delete-open-id-connect-provider \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用delete-policy-version

AWS CLI

删除托管策略的某个版本

此示例v2从策略中删除标识为的版本,该版本的策略ARN为arn:aws:iam::123456789012:policy/MySamplePolicy

aws iam delete-policy-version \ --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ --version-id v2

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用delete-policy

AWS CLI

删除IAM策略

此示例删除了其ARN为的策略arn:aws:iam::123456789012:policy/MySamplePolicy

aws iam delete-policy \ --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

  • 有关API详细信息,请参阅AWS CLI 命令参考DeletePolicy中的。

以下代码示例显示了如何使用delete-role-permissions-boundary

AWS CLI

从IAM角色中删除权限边界

以下delete-role-permissions-boundary示例删除了指定IAM角色的权限边界。要对角色应用权限边界,请使用 put-role-permissions-boundary 命令。

aws iam delete-role-permissions-boundary \ --role-name lambda-application-role

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用delete-role-policy

AWS CLI

从IAM角色中移除策略

以下 delete-role-policy 命令可将名为 ExamplePolicy 的策略从名为 Test-Role 的角色中删除。

aws iam delete-role-policy \ --role-name Test-Role \ --policy-name ExamplePolicy

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteRolePolicy中的。

以下代码示例显示了如何使用delete-role

AWS CLI

删除IAM角色

以下 delete-role 命令将删除名为 Test-Role 的角色。

aws iam delete-role \ --role-name Test-Role

此命令不生成任何输出。

在删除角色之前,必须从所有实例配置文件中删除该角色(remove-role-from-instance-profile),分离所有托管策略(detach-role-policy),删除附加到该角色的所有内联策略(delete-role-policy)。

有关更多信息,请参阅AWS IAM用户指南中的创建IAM角色使用实例配置文件

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteRole中的。

以下代码示例显示了如何使用delete-saml-provider

AWS CLI

删除提供SAML商

此示例删除了其为ARN的 IAM SAML 2.0 提供程序arn:aws:iam::123456789012:saml-provider/SAMLADFSProvider

aws iam delete-saml-provider \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFSProvider

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAMSAML身份提供商

  • 有关API详细信息,请参阅eleteSAMLProvider《AWS CLI 命令参考》中的 D

以下代码示例显示了如何使用delete-server-certificate

AWS CLI

从您的 AWS 账户中删除服务器证书

以下delete-server-certificate命令从您的 AWS 账户中删除指定的服务器证书。

aws iam delete-server-certificate \ --server-certificate-name myUpdatedServerCertificate

此命令不生成任何输出。

要列出您 AWS 账户中可用的服务器证书,请使用list-server-certificates命令。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的 “管理服务器证书”。

以下代码示例显示了如何使用delete-service-linked-role

AWS CLI

要删除服务相关角色

以下 delete-service-linked-role 示例将删除您不再需要的指定服务相关角色。删除操作异步进行。您也可以使用 get-service-linked-role-deletion-status 命令查看删除状态并确认何时删除。

aws iam delete-service-linked-role \ --role-name AWSServiceRoleForLexBots

输出:

{ "DeletionTaskId": "task/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots/1a2b3c4d-1234-abcd-7890-abcdeEXAMPLE" }

有关更多信息,请参阅《AWS IAM用户指南》中的使用服务相关角色

以下代码示例显示了如何使用delete-service-specific-credential

AWS CLI

示例 1:删除请求用户的特定服务凭证

以下delete-service-specific-credential示例删除了发出请求的用户的指定服务特定凭证。service-specific-credential-id是在您创建凭据时提供的,您可以使用list-service-specific-credentials命令进行检索。

aws iam delete-service-specific-credential \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE

此命令不生成任何输出。

示例 2:删除指定用户的服务专用凭证

以下delete-service-specific-credential示例删除指定用户的指定服务专用凭证。service-specific-credential-id是在您创建凭据时提供的,您可以使用list-service-specific-credentials命令进行检索。

aws iam delete-service-specific-credential \ --user-name sofia \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE

此命令不生成任何输出。

有关更多信息,请参阅AWS CodeCommit 用户指南 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用delete-signing-certificate

AWS CLI

删除IAM用户的签名证书

以下delete-signing-certificate命令删除名为的IAM用户的指定签名证书Bob

aws iam delete-signing-certificate \ --user-name Bob \ --certificate-id TA7SMP42TDN5Z26OBPJE7EXAMPLE

此命令不生成任何输出。

要获取签名证书的 ID,请使用 list-signing-certificates 命令。

有关更多信息,请参阅 Amazon EC2 用户指南中的管理签名证书

以下代码示例显示了如何使用delete-ssh-public-key

AWS CLI

删除附加到IAM用户的SSH公钥

以下delete-ssh-public-key命令删除附加到IAM用户的指定SSH公钥sofia

aws iam delete-ssh-public-key \ --user-name sofia \ --ssh-public-key-id APKA123456789EXAMPLE

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》 CodeCommit中的 “使用SSH密钥和 SSH with”。

以下代码示例显示了如何使用delete-user-permissions-boundary

AWS CLI

删除IAM用户的权限边界

以下delete-user-permissions-boundary示例删除了附加到名为的IAM用户的权限边界intern。要对用户应用权限边界,请使用 put-user-permissions-boundary 命令。

aws iam delete-user-permissions-boundary \ --user-name intern

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用delete-user-policy

AWS CLI

从IAM用户中移除策略

以下delete-user-policy命令从名为的IAM用户中删除指定的策略Bob

aws iam delete-user-policy \ --user-name Bob \ --policy-name ExamplePolicy

此命令不生成任何输出。

要获取IAM用户的策略列表,请使用list-user-policies命令。

有关更多信息,请参阅《IAM用户指南》中的在您的 AWS 账户中创建AWSIAM用户

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteUserPolicy中的。

以下代码示例显示了如何使用delete-user

AWS CLI

删除IAM用户

以下delete-user命令将名为的IAM用户Bob从当前账户中移除。

aws iam delete-user \ --user-name Bob

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的删除AWSIAM用户

  • 有关API详细信息,请参阅AWS CLI 命令参考DeleteUser中的。

以下代码示例显示了如何使用delete-virtual-mfa-device

AWS CLI

移除虚拟MFA设备

以下delete-virtual-mfa-device命令从当前账户中删除指定MFA设备。

aws iam delete-virtual-mfa-device \ --serial-number arn:aws:iam::123456789012:mfa/MFATest

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的停用MFA设备

以下代码示例显示了如何使用detach-group-policy

AWS CLI

从组中分离策略

此示例ARNarn:aws:iam::123456789012:policy/TesterAccessPolicy从名为的组中移除带有的托管策略Testers

aws iam detach-group-policy \ --group-name Testers \ --policy-arn arn:aws:iam::123456789012:policy/TesterAccessPolicy

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户

以下代码示例显示了如何使用detach-role-policy

AWS CLI

要从角色分离策略

此示例ARNarn:aws:iam::123456789012:policy/FederatedTesterAccessPolicy从名为的角色中移除托管策略FedTesterRole

aws iam detach-role-policy \ --role-name FedTesterRole \ --policy-arn arn:aws:iam::123456789012:policy/FederatedTesterAccessPolicy

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

  • 有关API详细信息,请参阅AWS CLI 命令参考DetachRolePolicy中的。

以下代码示例显示了如何使用detach-user-policy

AWS CLI

要从用户分离策略

此示例ARNarn:aws:iam::123456789012:policy/TesterPolicy从用户中移除带有的托管策略Bob

aws iam detach-user-policy \ --user-name Bob \ --policy-arn arn:aws:iam::123456789012:policy/TesterPolicy

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的更改AWS IAM用户权限

  • 有关API详细信息,请参阅AWS CLI 命令参考DetachUserPolicy中的。

以下代码示例显示了如何使用enable-mfa-device

AWS CLI

启用MFA设备

使用create-virtual-mfa-device命令创建新的虚拟MFA设备后,可以将该MFA设备分配给用户。以下enable-mfa-device示例将带有序列号的MFA设备分配arn:aws:iam::210987654321:mfa/BobsMFADevice给用户Bob。该命令还 AWS 通过按顺序包含来自虚拟设备的前两个代码来与MFA设备同步。

aws iam enable-mfa-device \ --user-name Bob \ --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice \ --authentication-code1 123456 \ --authentication-code2 789012

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的启用虚拟多因素身份验证 (MFA) 设备

  • 有关API详细信息,请参阅AWS CLI 命令参考EnableMfaDevice中的。

以下代码示例显示了如何使用generate-credential-report

AWS CLI

要生成凭证报告

以下示例尝试为该 AWS 账户生成凭证报告。

aws iam generate-credential-report

输出:

{ "State": "STARTED", "Description": "No report exists. Starting a new report generation task" }

有关更多信息,请参阅《AWS IAM用户指南》中的 “获取 AWS 账户的凭证报告”。

以下代码示例显示了如何使用generate-organizations-access-report

AWS CLI

示例 1:为组织中的根用户生成访问报告

以下generate-organizations-access-report示例启动后台作业,为组织中的指定根目录创建访问报告。创建报告后,您可以通过运行get-organizations-access-report命令来显示报告。

aws iam generate-organizations-access-report \ --entity-path o-4fxmplt198/r-c3xb

输出:

{ "JobId": "a8b6c06f-aaa4-8xmp-28bc-81da71836359" }

示例 2:为组织中的账户生成访问报告

以下generate-organizations-access-report示例启动后台作业,为组织123456789012中的账户 ID 创建访问报告o-4fxmplt198。创建报告后,您可以通过运行get-organizations-access-report命令来显示报告。

aws iam generate-organizations-access-report \ --entity-path o-4fxmplt198/r-c3xb/123456789012

输出:

{ "JobId": "14b6c071-75f6-2xmp-fb77-faf6fb4201d2" }

示例 3:为组织中组织单位的账户生成访问报告

以下generate-organizations-access-report示例启动后台作业,为组织234567890123中的组织单位ou-c3xb-lmu7j2yg中的账户 ID 创建访问报告o-4fxmplt198。创建报告后,您可以通过运行get-organizations-access-report命令来显示报告。

aws iam generate-organizations-access-report \ --entity-path o-4fxmplt198/r-c3xb/ou-c3xb-lmu7j2yg/234567890123

输出:

{ "JobId": "2eb6c2e6-0xmp-ec04-1425-c937916a64af" }

要获取有关组织中根和组织单位的详细信息,请使用organizations list-rootsorganizations list-organizational-units-for-parent命令。

有关更多信息,请参阅《AWS IAM用户指南》中的 “ AWS 使用上次访问的信息细化权限”。

以下代码示例显示了如何使用generate-service-last-accessed-details

AWS CLI

示例 1:为自定义策略生成服务访问报告

以下generate-service-last-accessed-details示例启动后台作业以生成一份报告,该报告列出了名为的自定义策略的IAM用户和其他实体访问的服务intern-boundary。创建报告后,您可以通过运行 get-service-last-accessed-details 命令来显示该报告。

aws iam generate-service-last-accessed-details \ --arn arn:aws:iam::123456789012:policy/intern-boundary

输出:

{ "JobId": "2eb6c2b8-7b4c-3xmp-3c13-03b72c8cdfdc" }

示例 2:为 AWS 托管 AdministratorAccess 策略生成服务访问报告

以下generate-service-last-accessed-details示例启动后台作业以生成一份报告,其中列出了使用 AWS 托管AdministratorAccess策略的IAM用户和其他实体访问的服务。创建报告后,您可以通过运行 get-service-last-accessed-details 命令来显示该报告。

aws iam generate-service-last-accessed-details \ --arn arn:aws:iam::aws:policy/AdministratorAccess

输出:

{ "JobId": "78b6c2ba-d09e-6xmp-7039-ecde30b26916" }

有关更多信息,请参阅《AWS IAM用户指南》中的 “ AWS 使用上次访问的信息细化权限”。

以下代码示例显示了如何使用get-access-key-last-used

AWS CLI

要检索上次使用指定访问密钥的时间信息

以下示例将检索上次使用访问密钥 ABCDEXAMPLE 的时间信息。

aws iam get-access-key-last-used \ --access-key-id ABCDEXAMPLE

输出:

{ "UserName": "Bob", "AccessKeyLastUsed": { "Region": "us-east-1", "ServiceName": "iam", "LastUsedDate": "2015-06-16T22:45:00Z" } }

有关更多信息,请参阅《用户指南》中的AWS IAM管理IAM用户访问密钥

以下代码示例显示了如何使用get-account-authorization-details

AWS CLI

列出 AWS 账户、IAM用户、群组、角色和策略

以下get-account-authorization-details命令返回有关 AWS 账户中所有IAM用户、群组、角色和策略的信息。

aws iam get-account-authorization-details

输出:

{ "RoleDetailList": [ { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "RoleId": "AROA1234567890EXAMPLE", "CreateDate": "2014-07-30T17:09:20Z", "InstanceProfileList": [ { "InstanceProfileId": "AIPA1234567890EXAMPLE", "Roles": [ { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "RoleId": "AROA1234567890EXAMPLE", "CreateDate": "2014-07-30T17:09:20Z", "RoleName": "EC2role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/EC2role" } ], "CreateDate": "2014-07-30T17:09:20Z", "InstanceProfileName": "EC2role", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/EC2role" } ], "RoleName": "EC2role", "Path": "/", "AttachedManagedPolicies": [ { "PolicyName": "AmazonS3FullAccess", "PolicyArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess" }, { "PolicyName": "AmazonDynamoDBFullAccess", "PolicyArn": "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess" } ], "RoleLastUsed": { "Region": "us-west-2", "LastUsedDate": "2019-11-13T17:30:00Z" }, "RolePolicyList": [], "Arn": "arn:aws:iam::123456789012:role/EC2role" } ], "GroupDetailList": [ { "GroupId": "AIDA1234567890EXAMPLE", "AttachedManagedPolicies": { "PolicyName": "AdministratorAccess", "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" }, "GroupName": "Admins", "Path": "/", "Arn": "arn:aws:iam::123456789012:group/Admins", "CreateDate": "2013-10-14T18:32:24Z", "GroupPolicyList": [] }, { "GroupId": "AIDA1234567890EXAMPLE", "AttachedManagedPolicies": { "PolicyName": "PowerUserAccess", "PolicyArn": "arn:aws:iam::aws:policy/PowerUserAccess" }, "GroupName": "Dev", "Path": "/", "Arn": "arn:aws:iam::123456789012:group/Dev", "CreateDate": "2013-10-14T18:33:55Z", "GroupPolicyList": [] }, { "GroupId": "AIDA1234567890EXAMPLE", "AttachedManagedPolicies": [], "GroupName": "Finance", "Path": "/", "Arn": "arn:aws:iam::123456789012:group/Finance", "CreateDate": "2013-10-14T18:57:48Z", "GroupPolicyList": [ { "PolicyName": "policygen-201310141157", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "aws-portal:*", "Sid": "Stmt1381777017000", "Resource": "*", "Effect": "Allow" } ] } } ] } ], "UserDetailList": [ { "UserName": "Alice", "GroupList": [ "Admins" ], "CreateDate": "2013-10-14T18:32:24Z", "UserId": "AIDA1234567890EXAMPLE", "UserPolicyList": [], "Path": "/", "AttachedManagedPolicies": [], "Arn": "arn:aws:iam::123456789012:user/Alice" }, { "UserName": "Bob", "GroupList": [ "Admins" ], "CreateDate": "2013-10-14T18:32:25Z", "UserId": "AIDA1234567890EXAMPLE", "UserPolicyList": [ { "PolicyName": "DenyBillingAndIAMPolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "aws-portal:*", "iam:*" ], "Resource": "*" } } } ], "Path": "/", "AttachedManagedPolicies": [], "Arn": "arn:aws:iam::123456789012:user/Bob" }, { "UserName": "Charlie", "GroupList": [ "Dev" ], "CreateDate": "2013-10-14T18:33:56Z", "UserId": "AIDA1234567890EXAMPLE", "UserPolicyList": [], "Path": "/", "AttachedManagedPolicies": [], "Arn": "arn:aws:iam::123456789012:user/Charlie" } ], "Policies": [ { "PolicyName": "create-update-delete-set-managed-policies", "CreateDate": "2015-02-06T19:58:34Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPA1234567890EXAMPLE", "DefaultVersionId": "v1", "PolicyVersionList": [ { "CreateDate": "2015-02-06T19:58:34Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion" ], "Resource": "*" } }, "IsDefaultVersion": true } ], "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/create-update-delete-set-managed-policies", "UpdateDate": "2015-02-06T19:58:34Z" }, { "PolicyName": "S3-read-only-specific-bucket", "CreateDate": "2015-01-21T21:39:41Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPA1234567890EXAMPLE", "DefaultVersionId": "v1", "PolicyVersionList": [ { "CreateDate": "2015-01-21T21:39:41Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/*" ] } ] }, "IsDefaultVersion": true } ], "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/S3-read-only-specific-bucket", "UpdateDate": "2015-01-21T23:39:41Z" }, { "PolicyName": "AmazonEC2FullAccess", "CreateDate": "2015-02-06T18:40:15Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPA1234567890EXAMPLE", "DefaultVersionId": "v1", "PolicyVersionList": [ { "CreateDate": "2014-10-30T20:59:46Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": "ec2:*", "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "elasticloadbalancing:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "autoscaling:*", "Resource": "*" } ] }, "IsDefaultVersion": true } ], "Path": "/", "Arn": "arn:aws:iam::aws:policy/AmazonEC2FullAccess", "UpdateDate": "2015-02-06T18:40:15Z" } ], "Marker": "EXAMPLEkakv9BCuUNFDtxWSyfzetYwEx2ADc8dnzfvERF5S6YMvXKx41t6gCl/eeaCX3Jo94/bKqezEAg8TEVS99EKFLxm3jtbpl25FDWEXAMPLE", "IsTruncated": true }

有关更多信息,请参阅《AWS IAM用户指南》中的AWS 安全审计指南

以下代码示例显示了如何使用get-account-password-policy

AWS CLI

要查看当前账户密码策略

以下 get-account-password-policy 命令将显示有关当前账户密码策略的详细信息。

aws iam get-account-password-policy

输出:

{ "PasswordPolicy": { "AllowUsersToChangePassword": false, "RequireLowercaseCharacters": false, "RequireUppercaseCharacters": false, "MinimumPasswordLength": 8, "RequireNumbers": true, "RequireSymbols": true } }

如果没有为账户定义密码策略,命令将返回 NoSuchEntity 错误。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM用户设置账户密码策略

以下代码示例显示了如何使用get-account-summary

AWS CLI

获取有关当前账户中IAM实体使用情况和IAM配额的信息

以下get-account-summary命令返回有关账户中当前IAM实体使用情况和当前IAM实体配额的信息。

aws iam get-account-summary

输出:

{ "SummaryMap": { "UsersQuota": 5000, "GroupsQuota": 100, "InstanceProfiles": 6, "SigningCertificatesPerUserQuota": 2, "AccountAccessKeysPresent": 0, "RolesQuota": 250, "RolePolicySizeQuota": 10240, "AccountSigningCertificatesPresent": 0, "Users": 27, "ServerCertificatesQuota": 20, "ServerCertificates": 0, "AssumeRolePolicySizeQuota": 2048, "Groups": 7, "MFADevicesInUse": 1, "Roles": 3, "AccountMFAEnabled": 1, "MFADevices": 3, "GroupsPerUserQuota": 10, "GroupPolicySizeQuota": 5120, "InstanceProfilesQuota": 100, "AccessKeysPerUserQuota": 2, "Providers": 0, "UserPolicySizeQuota": 2048 } }

有关实体限制的更多信息,请参阅AWS IAM用户指南中的IAM和 AWS STS配额

以下代码示例显示了如何使用get-context-keys-for-custom-policy

AWS CLI

示例 1:列出命令行上作为参数提供的一个或多个自定义JSON策略所引用的上下文密钥

以下 get-context-keys-for-custom-policy 命令解析每个提供的策略,并列出这些策略使用的上下文键。使用此命令来确定必须提供哪些上下文键值才能成功使用策略模拟器命令 simulate-custom-policysimulate-custom-policy。您还可以使用get-context-keys-for-custom-policy命令检索与IAM用户或角色关联的所有策略所使用的上下文密钥列表。以 file:// 开头的参数值指示命令读取文件的内容,然后使用内容而不是文件名本身作为参数的值。

aws iam get-context-keys-for-custom-policy \ --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2015-08-16T12:00:00Z"}}}}'

输出:

{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }

示例 2:列出作为文件输入提供的一项或多项自定义JSON策略所引用的上下文密钥

以下 get-context-keys-for-custom-policy 命令与前面的示例相同,只是策略是在文件中提供而不是作为参数提供。由于该命令需要的是字符串JSON列表,而不是JSON结构列表,因此尽管您可以将其折叠成一个,但必须按以下方式构造文件。

[ "Policy1", "Policy2" ]

例如,包含上一个示例中策略的文件必须如下所示。您必须在策略字符串中每个嵌入的双引号前面加上反斜杠 " 来对其进行转义。

[ "{\"Version\": \"2012-10-17\", \"Statement\": {\"Effect\": \"Allow\", \"Action\": \"dynamodb:*\", \"Resource\": \"arn:aws:dynamodb:us-west-2:128716708097:table/${aws:username}\", \"Condition\": {\"DateGreaterThan\": {\"aws:CurrentTime\": \"2015-08-16T12:00:00Z\"}}}}" ]

然后,可以将此文件提交给以下命令。

aws iam get-context-keys-for-custom-policy \ --policy-input-list file://policyfile.json

输出:

{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }

有关更多信息,请参阅AWS IAM用户指南中的使用IAM策略模拟器(AWS CLI和 AWS API)

以下代码示例显示了如何使用get-context-keys-for-principal-policy

AWS CLI

列出与IAM委托人关联的所有策略所引用的上下文密钥

以下 get-context-keys-for-principal-policy 命令检索附加到用户 saanvi 及其所属任何组的所有策略。然后,该命令会解析每个策略并列出这些策略使用的上下文键。使用此命令来确定必须提供哪些上下文键值才能成功使用 simulate-custom-policysimulate-principal-policy 命令。您还可以使用get-context-keys-for-custom-policy命令检索任意JSON策略使用的上下文密钥列表。

aws iam get-context-keys-for-principal-policy \ --policy-source-arn arn:aws:iam::123456789012:user/saanvi

输出:

{ "ContextKeyNames": [ "aws:username", "aws:CurrentTime" ] }

有关更多信息,请参阅AWS IAM用户指南中的使用IAM策略模拟器(AWS CLI和 AWS API)

以下代码示例显示了如何使用get-credential-report

AWS CLI

要获取凭证报告

此示例打开返回的报告,并将其作为文本行数组输出到管道。

aws iam get-credential-report

输出:

{ "GeneratedTime": "2015-06-17T19:11:50Z", "ReportFormat": "text/csv" }

有关更多信息,请参阅《AWS IAM用户指南》中的 “获取 AWS 账户的凭证报告”。

以下代码示例显示了如何使用get-group-policy

AWS CLI

获取有关附加到IAM群组的策略的信息

以下 get-group-policy 命令获取有关附加到名为 Test-Group 的组的指定策略的信息。

aws iam get-group-policy \ --group-name Test-Group \ --policy-name S3-ReadOnly-Policy

输出:

{ "GroupName": "Test-Group", "PolicyDocument": { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Resource": "*", "Effect": "Allow" } ] }, "PolicyName": "S3-ReadOnly-Policy" }

有关更多信息,请参阅《AWS IAM用户指南》中的管理IAM策略

以下代码示例显示了如何使用get-group

AWS CLI

要组建一个IAM小组

此示例返回有关该IAM群组的详细信息Admins

aws iam get-group \ --group-name Admins

输出:

{ "Group": { "Path": "/", "CreateDate": "2015-06-16T19:41:48Z", "GroupId": "AIDGPMS9RO4H3FEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/Admins", "GroupName": "Admins" }, "Users": [] }

有关更多信息,请参阅《用户指南》中的IAM身份(用户、AWS IAM用户组和角色)

以下代码示例显示了如何使用get-instance-profile

AWS CLI

获取有关实例配置文件的信息

以下 get-instance-profile 命令可获取名为 ExampleInstanceProfile 的实例配置文件的信息。

aws iam get-instance-profile \ --instance-profile-name ExampleInstanceProfile

输出:

{ "InstanceProfile": { "InstanceProfileId": "AID2MAB8DPLSRHEXAMPLE", "Roles": [ { "AssumeRolePolicyDocument": "<URL-encoded-JSON>", "RoleId": "AIDGPMS9RO4H3FEXAMPLE", "CreateDate": "2013-01-09T06:33:26Z", "RoleName": "Test-Role", "Path": "/", "Arn": "arn:aws:iam::336924118301:role/Test-Role" } ], "CreateDate": "2013-06-12T23:52:02Z", "InstanceProfileName": "ExampleInstanceProfile", "Path": "/", "Arn": "arn:aws:iam::336924118301:instance-profile/ExampleInstanceProfile" } }

有关更多信息,请参阅AWS IAM用户指南中的使用实例配置文件

以下代码示例显示了如何使用get-login-profile

AWS CLI

获取IAM用户的密码信息

以下get-login-profile命令获取有关名为的IAM用户的密码的信息Bob

aws iam get-login-profile \ --user-name Bob

输出:

{ "LoginProfile": { "UserName": "Bob", "CreateDate": "2012-09-21T23:03:39Z" } }

get-login-profile命令可用于验证IAM用户是否有密码。如果没有为用户定义密码,则该命令将返回 NoSuchEntity 错误。

您无法使用此命令查看密码。如果密码丢失,则可以为用户重置密码(update-login-profile)。或者,您可以删除用户的登录配置文件(delete-login-profile),然后创建新的登录配置文件(create-login-profile)。

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户密码

以下代码示例显示了如何使用get-mfa-device

AWS CLI

检索有关FIDO安全密钥的信息

以下get-mfa-device命令示例检索有关指定FIDO安全密钥的信息。

aws iam get-mfa-device \ --serial-number arn:aws:iam::123456789012:u2f/user/alice/fidokeyname-EXAMPLEBN5FHTECLFG7EXAMPLE

输出:

{ "UserName": "alice", "SerialNumber": "arn:aws:iam::123456789012:u2f/user/alice/fidokeyname-EXAMPLEBN5FHTECLFG7EXAMPLE", "EnableDate": "2023-09-19T01:49:18+00:00", "Certifications": { "FIDO": "L1" } }

有关更多信息,请参阅《AWS IAM用户指南》 AWS中的使用多重身份验证 (MFA)

以下代码示例显示了如何使用get-open-id-connect-provider

AWS CLI

返回有关指定 OpenID Connect 提供者的信息

此示例返回有关其所在的 OpenID Connect 提供商的ARN详细信息。arn:aws:iam::123456789012:oidc-provider/server.example.com

aws iam get-open-id-connect-provider \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com

输出:

{ "Url": "server.example.com" "CreateDate": "2015-06-16T19:41:48Z", "ThumbprintList": [ "12345abcdefghijk67890lmnopqrst987example" ], "ClientIDList": [ "example-application-ID" ] }

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用get-organizations-access-report

AWS CLI

检索访问报告

以下get-organizations-access-report示例显示了之前为 Organ AWS izations 实体生成的访问报告。要生成报告,请使用 generate-organizations-access-report 命令。

aws iam get-organizations-access-report \ --job-id a8b6c06f-aaa4-8xmp-28bc-81da71836359

输出:

{ "JobStatus": "COMPLETED", "JobCreationDate": "2019-09-30T06:53:36.187Z", "JobCompletionDate": "2019-09-30T06:53:37.547Z", "NumberOfServicesAccessible": 188, "NumberOfServicesNotAccessed": 171, "AccessDetails": [ { "ServiceName": "Alexa for Business", "ServiceNamespace": "a4b", "TotalAuthenticatedEntities": 0 }, ... }

有关更多信息,请参阅《AWS IAM用户指南》中的 “ AWS 使用上次访问的信息细化权限”。

以下代码示例显示了如何使用get-policy-version

AWS CLI

要检索有关指定托管策略的指定版本的信息

此示例返回策略的 v2 版本的策略文档,其策略ARN为arn:aws:iam::123456789012:policy/MyManagedPolicy

aws iam get-policy-version \ --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ --version-id v2

输出:

{ "PolicyVersion": { "Document": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*" } ] }, "VersionId": "v2", "IsDefaultVersion": true, "CreateDate": "2023-04-11T00:22:54+00:00" } }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用get-policy

AWS CLI

要检索有关指定托管策略的信息

此示例返回有关其为的托管策略ARN的详细信息arn:aws:iam::123456789012:policy/MySamplePolicy

aws iam get-policy \ --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy

输出:

{ "Policy": { "PolicyName": "MySamplePolicy", "CreateDate": "2015-06-17T19:23;32Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "Z27SI6FQMGNQ2EXAMPLE1", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/MySamplePolicy", "UpdateDate": "2015-06-17T19:23:32Z" } }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用get-role-policy

AWS CLI

获取有关附加到IAM角色的策略的信息

以下 get-role-policy 命令获取有关附加到名为 Test-Role 的角色的指定策略的信息。

aws iam get-role-policy \ --role-name Test-Role \ --policy-name ExamplePolicy

输出:

{ "RoleName": "Test-Role", "PolicyDocument": { "Statement": [ { "Action": [ "s3:ListBucket", "s3:Put*", "s3:Get*", "s3:*MultipartUpload*" ], "Resource": "*", "Effect": "Allow", "Sid": "1" } ] } "PolicyName": "ExamplePolicy" }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

以下代码示例显示了如何使用get-role

AWS CLI

获取有关IAM角色的信息

以下 get-role 命令可获取名为 Test-Role 的角色的信息。

aws iam get-role \ --role-name Test-Role

输出:

{ "Role": { "Description": "Test Role", "AssumeRolePolicyDocument":"<URL-encoded-JSON>", "MaxSessionDuration": 3600, "RoleId": "AROA1234567890EXAMPLE", "CreateDate": "2019-11-13T16:45:56Z", "RoleName": "Test-Role", "Path": "/", "RoleLastUsed": { "Region": "us-east-1", "LastUsedDate": "2019-11-13T17:14:00Z" }, "Arn": "arn:aws:iam::123456789012:role/Test-Role" } }

该命令会显示附加到角色的信任策略。要列出附加到角色的权限策略,请使用 list-role-policies 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

以下代码示例显示了如何使用get-saml-provider

AWS CLI

检索SAML提供者元文档

此示例检索有关其 SAML 2.0 提供商ARM的arn:aws:iam::123456789012:saml-provider/SAMLADFS详细信息。响应包括您从身份提供商那里获得的用于创建提供 AWS SAML商实体的元数据文档以及创建日期和到期日期。

aws iam get-saml-provider \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFS

输出:

{ "SAMLMetadataDocument": "...SAMLMetadataDocument-XML...", "CreateDate": "2017-03-06T22:29:46+00:00", "ValidUntil": "2117-03-06T22:29:46.433000+00:00", "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAMSAML身份提供商

以下代码示例显示了如何使用get-server-certificate

AWS CLI

获取有关您 AWS 账户中服务器证书的详细信息

以下get-server-certificate命令检索有关您 AWS 账户中指定服务器证书的所有详细信息。

aws iam get-server-certificate \ --server-certificate-name myUpdatedServerCertificate

输出:

{ "ServerCertificate": { "ServerCertificateMetadata": { "Path": "/", "ServerCertificateName": "myUpdatedServerCertificate", "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", "Arn": "arn:aws:iam::123456789012:server-certificate/myUpdatedServerCertificate", "UploadDate": "2019-04-22T21:13:44+00:00", "Expiration": "2019-10-15T22:23:16+00:00" }, "CertificateBody": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6 b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ 21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4 nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb NYiytVbZPQUQ5Yaxu2jXnimvrszlaEXAMPLE=-----END CERTIFICATE-----", "CertificateChain": "-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6md 7oRw0uXOjANBgkqhkiG9w0BAqQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgT AldBMRAwDgYDVQQHEwdTZWF0drGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAs TC0lBTSBDb25zb2xlMRIwEAYDVsQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQ jb20wHhcNMTEwNDI1MjA0NTIxWhtcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgsYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb2d5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGfFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIgWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8mh9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gjpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCku4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FlkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjS;TbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEWEG5vb25lQGFtsYXpvbiEXAMPLE=\n-----END CERTIFICATE-----" } }

要列出您 AWS 账户中可用的服务器证书,请使用list-server-certificates命令。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的 “管理服务器证书”。

以下代码示例显示了如何使用get-service-last-accessed-details-with-entities

AWS CLI

检索包含服务详细信息的服务访问报告

以下get-service-last-accessed-details-with-entities示例检索一份报告,其中包含有关访问指定服务的IAM用户和其他实体的详细信息。要生成报告,请使用 generate-service-last-accessed-details 命令。要获取使用命名空间访问的服务列表,请使用 get-service-last-accessed-details

aws iam get-service-last-accessed-details-with-entities \ --job-id 78b6c2ba-d09e-6xmp-7039-ecde30b26916 \ --service-namespace lambda

输出:

{ "JobStatus": "COMPLETED", "JobCreationDate": "2019-10-01T03:55:41.756Z", "JobCompletionDate": "2019-10-01T03:55:42.533Z", "EntityDetailsList": [ { "EntityInfo": { "Arn": "arn:aws:iam::123456789012:user/admin", "Name": "admin", "Type": "USER", "Id": "AIDAIO2XMPLENQEXAMPLE", "Path": "/" }, "LastAuthenticated": "2019-09-30T23:02:00Z" }, { "EntityInfo": { "Arn": "arn:aws:iam::123456789012:user/developer", "Name": "developer", "Type": "USER", "Id": "AIDAIBEYXMPL2YEXAMPLE", "Path": "/" }, "LastAuthenticated": "2019-09-16T19:34:00Z" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的 “ AWS 使用上次访问的信息细化权限”。

以下代码示例显示了如何使用get-service-last-accessed-details

AWS CLI

检索服务访问报告

以下get-service-last-accessed-details示例检索先前生成的报告,其中列出了IAM实体访问的服务。要生成报告,请使用 generate-service-last-accessed-details 命令。

aws iam get-service-last-accessed-details \ --job-id 2eb6c2b8-7b4c-3xmp-3c13-03b72c8cdfdc

输出:

{ "JobStatus": "COMPLETED", "JobCreationDate": "2019-10-01T03:50:35.929Z", "ServicesLastAccessed": [ ... { "ServiceName": "AWS Lambda", "LastAuthenticated": "2019-09-30T23:02:00Z", "ServiceNamespace": "lambda", "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/admin", "TotalAuthenticatedEntities": 6 }, ] }

有关更多信息,请参阅《AWS IAM用户指南》中的 “ AWS 使用上次访问的信息细化权限”。

以下代码示例显示了如何使用get-service-linked-role-deletion-status

AWS CLI

要查看删除服务相关角色的请求状态

以下 get-service-linked-role-deletion-status 示例演示了先前请求删除服务相关角色的状态。删除操作异步进行。当您发出请求时,您将得到一个 DeletionTaskId 值,该值将作为此命令的参数提供。

aws iam get-service-linked-role-deletion-status \ --deletion-task-id task/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots/1a2b3c4d-1234-abcd-7890-abcdeEXAMPLE

输出:

{ "Status": "SUCCEEDED" }

有关更多信息,请参阅《AWS IAM用户指南》中的使用服务相关角色

以下代码示例显示了如何使用get-ssh-public-key

AWS CLI

示例 1:检索以SSH编码形式附加到IAM用户的SSH公钥

以下get-ssh-public-key命令从IAM用户sofia那里检索指定的SSH公钥。输出采用SSH编码。

aws iam get-ssh-public-key \ --user-name sofia \ --ssh-public-key-id APKA123456789EXAMPLE \ --encoding SSH

输出:

{ "SSHPublicKey": { "UserName": "sofia", "SSHPublicKeyId": "APKA123456789EXAMPLE", "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", "SSHPublicKeyBody": "ssh-rsa <<long encoded SSH string>>", "Status": "Inactive", "UploadDate": "2019-04-18T17:04:49+00:00" } }

示例 2:检索以PEM编码形式附加到IAM用户的SSH公钥

以下get-ssh-public-key命令从IAM用户sofia那里检索指定的SSH公钥。输出采用PEM编码。

aws iam get-ssh-public-key \ --user-name sofia \ --ssh-public-key-id APKA123456789EXAMPLE \ --encoding PEM

输出:

{ "SSHPublicKey": { "UserName": "sofia", "SSHPublicKeyId": "APKA123456789EXAMPLE", "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", "SSHPublicKeyBody": ""-----BEGIN PUBLIC KEY-----\n<<long encoded PEM string>>\n-----END PUBLIC KEY-----\n"", "Status": "Inactive", "UploadDate": "2019-04-18T17:04:49+00:00" } }

有关更多信息,请参阅《AWS IAM用户指南》 CodeCommit中的 “使用SSH密钥和 SSH with”。

以下代码示例显示了如何使用get-user-policy

AWS CLI

列出IAM用户的策略详细信息

以下get-user-policy命令列出了附加到名为的IAM用户的指定策略的详细信息Bob

aws iam get-user-policy \ --user-name Bob \ --policy-name ExamplePolicy

输出:

{ "UserName": "Bob", "PolicyName": "ExamplePolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow" } ] } }

要获取IAM用户的策略列表,请使用list-user-policies命令。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用get-user

AWS CLI

获取有关IAM用户的信息

以下get-user命令获取有关名为的IAM用户的信息Paulo

aws iam get-user \ --user-name Paulo

输出:

{ "User": { "UserName": "Paulo", "Path": "/", "CreateDate": "2019-09-21T23:03:13Z", "UserId": "AIDA123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Paulo" } }

有关更多信息,请参阅《IAM用户指南》中的管理AWSIAM用户

以下代码示例显示了如何使用list-access-keys

AWS CLI

列出IAM用户的访问密钥 IDs

以下list-access-keys命令列出了名IDs为的IAM用户的访问密钥Bob

aws iam list-access-keys \ --user-name Bob

输出:

{ "AccessKeyMetadata": [ { "UserName": "Bob", "Status": "Active", "CreateDate": "2013-06-04T18:17:34Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" }, { "UserName": "Bob", "Status": "Inactive", "CreateDate": "2013-06-06T20:42:26Z", "AccessKeyId": "AKIAI44QH8DHBEXAMPLE" } ] }

您无法列出IAM用户的私有访问密钥。如果秘密访问密钥丢失,则必须使用 create-access-keys 命令创建新的访问密钥。

有关更多信息,请参阅《用户指南》中的AWS IAM管理IAM用户访问密钥

以下代码示例显示了如何使用list-account-aliases

AWS CLI

要列出账户别名

以下 list-account-aliases 命令将列出当前账户的别名。

aws iam list-account-aliases

输出:

{ "AccountAliases": [ "mycompany" ] }

有关更多信息,请参阅《AWS IAM用户指南》中的您的 AWS 账户 ID 及其别名

以下代码示例显示了如何使用list-attached-group-policies

AWS CLI

列出附加到指定组的所有托管策略

此示例返回挂载到 AWS 账户中名为ARNs的IAM组的托管策略的名称Admins和托管策略。

aws iam list-attached-group-policies \ --group-name Admins

输出:

{ "AttachedPolicies": [ { "PolicyName": "AdministratorAccess", "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" }, { "PolicyName": "SecurityAudit", "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-attached-role-policies

AWS CLI

要列出附加到指定角色的所有托管策略

此命令返回 AWS 账户中指定IAMSecurityAuditRole角色ARNs的名称和关联的托管策略。

aws iam list-attached-role-policies \ --role-name SecurityAuditRole

输出:

{ "AttachedPolicies": [ { "PolicyName": "SecurityAudit", "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-attached-user-policies

AWS CLI

列出附加到指定用户的所有托管策略

此命令返回 AWS 账户Bob中指定IAM用户的名称和ARNs托管策略。

aws iam list-attached-user-policies \ --user-name Bob

输出:

{ "AttachedPolicies": [ { "PolicyName": "AdministratorAccess", "PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess" }, { "PolicyName": "SecurityAudit", "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-entities-for-policy

AWS CLI

列出指定托管策略所附加到的所有用户、组和角色

此示例返回已arn:aws:iam::123456789012:policy/TestPolicy附加策略的IAM群组、角色和用户的列表。

aws iam list-entities-for-policy \ --policy-arn arn:aws:iam::123456789012:policy/TestPolicy

输出:

{ "PolicyGroups": [ { "GroupName": "Admins", "GroupId": "AGPACKCEVSQ6C2EXAMPLE" } ], "PolicyUsers": [ { "UserName": "Alice", "UserId": "AIDACKCEVSQ6C2EXAMPLE" } ], "PolicyRoles": [ { "RoleName": "DevRole", "RoleId": "AROADBQP57FF2AEXAMPLE" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-group-policies

AWS CLI

列出附加到指定组的所有内联策略

以下list-group-policies命令列出了附加到当前账户Admins中名为的IAM组的内联策略的名称。

aws iam list-group-policies \ --group-name Admins

输出:

{ "PolicyNames": [ "AdminRoot", "ExamplePolicy" ] }

有关更多信息,请参阅《AWS IAM用户指南》中的管理IAM策略

以下代码示例显示了如何使用list-groups-for-user

AWS CLI

列出IAM用户所属的群组

以下list-groups-for-user命令显示名为的IAM用户所Bob属的群组。

aws iam list-groups-for-user \ --user-name Bob

输出:

{ "Groups": [ { "Path": "/", "CreateDate": "2013-05-06T01:18:08Z", "GroupId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/Admin", "GroupName": "Admin" }, { "Path": "/", "CreateDate": "2013-05-06T01:37:28Z", "GroupId": "AKIAI44QH8DHBEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/s3-Users", "GroupName": "s3-Users" } ] }

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户

以下代码示例显示了如何使用list-groups

AWS CLI

列出当前账户的IAM群组

以下list-groups命令列出了当前账户中的IAM群组。

aws iam list-groups

输出:

{ "Groups": [ { "Path": "/", "CreateDate": "2013-06-04T20:27:27.972Z", "GroupId": "AIDACKCEVSQ6C2EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/Admins", "GroupName": "Admins" }, { "Path": "/", "CreateDate": "2013-04-16T20:30:42Z", "GroupId": "AIDGPMS9RO4H3FEXAMPLE", "Arn": "arn:aws:iam::123456789012:group/S3-Admins", "GroupName": "S3-Admins" } ] }

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户

以下代码示例显示了如何使用list-instance-profile-tags

AWS CLI

列出附加到实例配置文件的标签

以下list-instance-profile-tags命令检索与指定实例配置文件关联的标签列表。

aws iam list-instance-profile-tags \ --instance-profile-name deployment-role

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-instance-profiles-for-role

AWS CLI

列出IAM角色的实例配置文件

以下 list-instance-profiles-for-role 命令列出了中与角色 Test-Role 关联的实例配置文件。

aws iam list-instance-profiles-for-role \ --role-name Test-Role

输出:

{ "InstanceProfiles": [ { "InstanceProfileId": "AIDGPMS9RO4H3FEXAMPLE", "Roles": [ { "AssumeRolePolicyDocument": "<URL-encoded-JSON>", "RoleId": "AIDACKCEVSQ6C2EXAMPLE", "CreateDate": "2013-06-07T20:42:15Z", "RoleName": "Test-Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/Test-Role" } ], "CreateDate": "2013-06-07T21:05:24Z", "InstanceProfileName": "ExampleInstanceProfile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ExampleInstanceProfile" } ] }

有关更多信息,请参阅AWS IAM用户指南中的使用实例配置文件

以下代码示例显示了如何使用list-instance-profiles

AWS CLI

列出账户的实例配置文件

以下 list-instance-profiles 命令列出与当前账户关联的实例配置文件。

aws iam list-instance-profiles

输出:

{ "InstanceProfiles": [ { "Path": "/", "InstanceProfileName": "example-dev-role", "InstanceProfileId": "AIPAIXEU4NUHUPEXAMPLE", "Arn": "arn:aws:iam::123456789012:instance-profile/example-dev-role", "CreateDate": "2023-09-21T18:17:41+00:00", "Roles": [ { "Path": "/", "RoleName": "example-dev-role", "RoleId": "AROAJ52OTH4H7LEXAMPLE", "Arn": "arn:aws:iam::123456789012:role/example-dev-role", "CreateDate": "2023-09-21T18:17:40+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] }, { "Path": "/", "InstanceProfileName": "example-s3-role", "InstanceProfileId": "AIPAJVJVNRIQFREXAMPLE", "Arn": "arn:aws:iam::123456789012:instance-profile/example-s3-role", "CreateDate": "2023-09-21T18:18:50+00:00", "Roles": [ { "Path": "/", "RoleName": "example-s3-role", "RoleId": "AROAINUBC5O7XLEXAMPLE", "Arn": "arn:aws:iam::123456789012:role/example-s3-role", "CreateDate": "2023-09-21T18:18:49+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] } ] }

有关更多信息,请参阅AWS IAM用户指南中的使用实例配置文件

以下代码示例显示了如何使用list-mfa-device-tags

AWS CLI

列出附加到MFA设备的标签

以下list-mfa-device-tags命令检索与指定MFA设备关联的标签列表。

aws iam list-mfa-device-tags \ --serial-number arn:aws:iam::123456789012:mfa/alice

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-mfa-devices

AWS CLI

列出指定用户的所有MFA设备

此示例返回有关分配给IAM用户的MFA设备的详细信息Bob

aws iam list-mfa-devices \ --user-name Bob

输出:

{ "MFADevices": [ { "UserName": "Bob", "SerialNumber": "arn:aws:iam::123456789012:mfa/Bob", "EnableDate": "2019-10-28T20:37:09+00:00" }, { "UserName": "Bob", "SerialNumber": "GAKT12345678", "EnableDate": "2023-02-18T21:44:42+00:00" }, { "UserName": "Bob", "SerialNumber": "arn:aws:iam::123456789012:u2f/user/Bob/fidosecuritykey1-7XNL7NFNLZ123456789EXAMPLE", "EnableDate": "2023-09-19T02:25:35+00:00" }, { "UserName": "Bob", "SerialNumber": "arn:aws:iam::123456789012:u2f/user/Bob/fidosecuritykey2-VDRQTDBBN5123456789EXAMPLE", "EnableDate": "2023-09-19T01:49:18+00:00" } ] }

有关更多信息,请参阅《AWS IAM用户指南》 AWS中的使用多重身份验证 (MFA)

以下代码示例显示了如何使用list-open-id-connect-provider-tags

AWS CLI

列出附加到兼容 OpenID Connect (OIDC) 的身份提供商的标签

以下list-open-id-connect-provider-tags命令检索与指定OIDC身份提供商关联的标签列表。

aws iam list-open-id-connect-provider-tags \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-open-id-connect-providers

AWS CLI

列出账户中 OpenID Connect 提供商的相关信息 AWS

此示例返回当前 AWS 账户中定义ARNS的所有 OpenID Connect 提供商的列表。

aws iam list-open-id-connect-providers

输出:

{ "OpenIDConnectProviderList": [ { "Arn": "arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用list-policies-granting-service-access

AWS CLI

列出授予委托人访问指定服务的权限的策略

以下list-policies-granting-service-access示例检索授予IAM用户 AWS CodeCommit 服务sofia访问权限的策略列表。

aws iam list-policies-granting-service-access \ --arn arn:aws:iam::123456789012:user/sofia \ --service-namespaces codecommit

输出:

{ "PoliciesGrantingServiceAccess": [ { "ServiceNamespace": "codecommit", "Policies": [ { "PolicyName": "Grant-Sofia-Access-To-CodeCommit", "PolicyType": "INLINE", "EntityType": "USER", "EntityName": "sofia" } ] } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》中的IAM搭配 CodeCommit:Git 凭证、SSH密钥和 AWS 访问密钥

以下代码示例显示了如何使用list-policies

AWS CLI

列出您的 AWS 账户可用的托管政策

此示例返回当前 AWS 账户中可用的前两个托管策略的集合。

aws iam list-policies \ --max-items 3

输出:

{ "Policies": [ { "PolicyName": "AWSCloudTrailAccessPolicy", "PolicyId": "ANPAXQE2B5PJ7YEXAMPLE", "Arn": "arn:aws:iam::123456789012:policy/AWSCloudTrailAccessPolicy", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2019-09-04T17:43:42+00:00", "UpdateDate": "2019-09-04T17:43:42+00:00" }, { "PolicyName": "AdministratorAccess", "PolicyId": "ANPAIWMBCKSKIEE64ZLYK", "Arn": "arn:aws:iam::aws:policy/AdministratorAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 6, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2015-02-06T18:39:46+00:00", "UpdateDate": "2015-02-06T18:39:46+00:00" }, { "PolicyName": "PowerUserAccess", "PolicyId": "ANPAJYRXTHIB4FOVS3ZXS", "Arn": "arn:aws:iam::aws:policy/PowerUserAccess", "Path": "/", "DefaultVersionId": "v5", "AttachmentCount": 1, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2015-02-06T18:39:47+00:00", "UpdateDate": "2023-07-06T22:04:00+00:00" } ], "NextToken": "EXAMPLErZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiA4fQ==" }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-policy-tags

AWS CLI

列出附加到托管策略的标签

以下list-policy-tags命令检索与指定托管策略关联的标签列表。

aws iam list-policy-tags \ --policy-arn arn:aws:iam::123456789012:policy/billing-access

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-policy-versions

AWS CLI

列出有关指定托管策略版本的信息

此示例返回策略的可用版本列表,其版本ARN为arn:aws:iam::123456789012:policy/MySamplePolicy

aws iam list-policy-versions \ --policy-arn arn:aws:iam::123456789012:policy/MySamplePolicy

输出:

{ "IsTruncated": false, "Versions": [ { "VersionId": "v2", "IsDefaultVersion": true, "CreateDate": "2015-06-02T23:19:44Z" }, { "VersionId": "v1", "IsDefaultVersion": false, "CreateDate": "2015-06-02T22:30:47Z" } ] }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用list-role-policies

AWS CLI

列出附加到IAM角色的策略

以下list-role-policies命令列出了指定IAM角色的权限策略的名称。

aws iam list-role-policies \ --role-name Test-Role

输出:

{ "PolicyNames": [ "ExamplePolicy" ] }

要查看附加到角色的信任策略,请使用 get-role 命令。要查看权限策略的详细信息,请使用 get-role-policy 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

以下代码示例显示了如何使用list-role-tags

AWS CLI

列出附加到角色的标签

以下 list-role-tags 命令检索与指定角色关联的标签列表。

aws iam list-role-tags \ --role-name production-role

输出:

{ "Tags": [ { "Key": "Department", "Value": "Accounting" }, { "Key": "DeptID", "Value": "12345" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-roles

AWS CLI

列出当前账户的IAM角色

以下list-roles命令列出了当前账户的IAM角色。

aws iam list-roles

输出:

{ "Roles": [ { "Path": "/", "RoleName": "ExampleRole", "RoleId": "AROAJ52OTH4H7LEXAMPLE", "Arn": "arn:aws:iam::123456789012:role/ExampleRole", "CreateDate": "2017-09-12T19:23:36+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "MaxSessionDuration": 3600 }, { "Path": "/example_path/", "RoleName": "ExampleRoleWithPath", "RoleId": "AROAI4QRP7UFT7EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/example_path/ExampleRoleWithPath", "CreateDate": "2023-09-21T20:29:38+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "MaxSessionDuration": 3600 } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

以下代码示例显示了如何使用list-saml-provider-tags

AWS CLI

列出附加到SAML提供商的标签

以下list-saml-provider-tags命令检索与指定SAML提供程序关联的标签列表。

aws iam list-saml-provider-tags \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-saml-providers

AWS CLI

列出 AWS 账户中的SAML提供商

此示例检索在当前 AWS 账户中创建的 SAML 2.0 提供商列表。

aws iam list-saml-providers

输出:

{ "SAMLProviderList": [ { "Arn": "arn:aws:iam::123456789012:saml-provider/SAML-ADFS", "ValidUntil": "2015-06-05T22:45:14Z", "CreateDate": "2015-06-05T22:45:14Z" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAMSAML身份提供商

  • 有关API详细信息,请参阅istSAMLProviders《AWS CLI 命令参考》中的 L

以下代码示例显示了如何使用list-server-certificate-tags

AWS CLI

列出附加到服务器证书的标签

以下list-server-certificate-tags命令检索与指定服务器证书关联的标签列表。

aws iam list-server-certificate-tags \ --server-certificate-name ExampleCertificate

输出:

{ "Tags": [ { "Key": "DeptID", "Value": "123456" }, { "Key": "Department", "Value": "Accounting" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-server-certificates

AWS CLI

列出您 AWS 账户中的服务器证书

以下list-server-certificates命令列出了您的 AWS 账户中存储并可供使用的所有服务器证书。

aws iam list-server-certificates

输出:

{ "ServerCertificateMetadataList": [ { "Path": "/", "ServerCertificateName": "myUpdatedServerCertificate", "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", "Arn": "arn:aws:iam::123456789012:server-certificate/myUpdatedServerCertificate", "UploadDate": "2019-04-22T21:13:44+00:00", "Expiration": "2019-10-15T22:23:16+00:00" }, { "Path": "/cloudfront/", "ServerCertificateName": "MyTestCert", "ServerCertificateId": "ASCAEXAMPLE456EXAMPLE", "Arn": "arn:aws:iam::123456789012:server-certificate/Org1/Org2/MyTestCert", "UploadDate": "2015-04-21T18:14:16+00:00", "Expiration": "2018-01-14T17:52:36+00:00" } ] }

有关更多信息,请参阅《AWS IAM用户指南》IAM中的 “管理服务器证书”。

以下代码示例显示了如何使用list-service-specific-credential

AWS CLI

示例 1:列出用户的服务特定凭证

以下list-service-specific-credentials示例显示了分配给指定用户的所有服务专用凭证。密码未包含在响应中。

aws iam list-service-specific-credentials \ --user-name sofia

输出:

{ "ServiceSpecificCredential": { "CreateDate": "2019-04-18T20:45:36+00:00", "ServiceName": "codecommit.amazonaws.com", "ServiceUserName": "sofia-at-123456789012", "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", "UserName": "sofia", "Status": "Active" } }

示例 2:列出筛选到指定服务的用户的服务特定凭证

以下list-service-specific-credentials示例显示了分配给发出请求的用户的特定服务凭证。列表经过筛选,仅包含指定服务的凭证。密码未包含在响应中。

aws iam list-service-specific-credentials \ --service-name codecommit.amazonaws.com

输出:

{ "ServiceSpecificCredential": { "CreateDate": "2019-04-18T20:45:36+00:00", "ServiceName": "codecommit.amazonaws.com", "ServiceUserName": "sofia-at-123456789012", "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", "UserName": "sofia", "Status": "Active" } }

有关更多信息,请参阅AWS CodeCommit 用户指南 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用list-service-specific-credentials

AWS CLI

检索凭证列表

以下list-service-specific-credentials示例列出了为名为的用户HTTPS访问 AWS CodeCommit 存储库而生成的凭证developer

aws iam list-service-specific-credentials \ --user-name developer \ --service-name codecommit.amazonaws.com

输出:

{ "ServiceSpecificCredentials": [ { "UserName": "developer", "Status": "Inactive", "ServiceUserName": "developer-at-123456789012", "CreateDate": "2019-10-01T04:31:41Z", "ServiceSpecificCredentialId": "ACCAQFODXMPL4YFHP7DZE", "ServiceName": "codecommit.amazonaws.com" }, { "UserName": "developer", "Status": "Active", "ServiceUserName": "developer+1-at-123456789012", "CreateDate": "2019-10-01T04:31:45Z", "ServiceSpecificCredentialId": "ACCAQFOXMPL6VW57M7AJP", "ServiceName": "codecommit.amazonaws.com" } ] }

有关更多信息,请参阅AWS CodeCommit 用户指南 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用list-signing-certificates

AWS CLI

列出IAM用户的签名证书

以下list-signing-certificates命令列出了名为的IAM用户的签名证书Bob

aws iam list-signing-certificates \ --user-name Bob

输出:

{ "Certificates": [ { "UserName": "Bob", "Status": "Inactive", "CertificateBody": "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----", "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", "UploadDate": "2013-06-06T21:40:08Z" } ] }

有关更多信息,请参阅 Amazon EC2 用户指南中的管理签名证书

以下代码示例显示了如何使用list-ssh-public-keys

AWS CLI

列出附加到IAM用户的SSH公钥

以下list-ssh-public-keys示例列出了附加到IAM用户的SSH公钥sofia

aws iam list-ssh-public-keys \ --user-name sofia

输出:

{ "SSHPublicKeys": [ { "UserName": "sofia", "SSHPublicKeyId": "APKA1234567890EXAMPLE", "Status": "Inactive", "UploadDate": "2019-04-18T17:04:49+00:00" } ] }

有关更多信息,请参阅《AWS IAM用户指南》 CodeCommit中的SSH使用SSH密钥和 with

以下代码示例显示了如何使用list-user-policies

AWS CLI

列出IAM用户的策略

以下list-user-policies命令列出了附加到名为的IAM用户的策略Bob

aws iam list-user-policies \ --user-name Bob

输出:

{ "PolicyNames": [ "ExamplePolicy", "TestPolicy" ] }

有关更多信息,请参阅《IAM用户指南》中的在您的 AWS 账户中创建AWSIAM用户

以下代码示例显示了如何使用list-user-tags

AWS CLI

列出附加到用户的标签

以下list-user-tags命令检索与指定IAM用户关联的标签列表。

aws iam list-user-tags \ --user-name alice

输出:

{ "Tags": [ { "Key": "Department", "Value": "Accounting" }, { "Key": "DeptID", "Value": "12345" } ], "IsTruncated": false }

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用list-users

AWS CLI

列出IAM用户

以下list-users命令列出了当前账户中的IAM用户。

aws iam list-users

输出:

{ "Users": [ { "UserName": "Adele", "Path": "/", "CreateDate": "2013-03-07T05:14:48Z", "UserId": "AKIAI44QH8DHBEXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Adele" }, { "UserName": "Bob", "Path": "/", "CreateDate": "2012-09-21T23:03:13Z", "UserId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Bob" } ] }

有关更多信息,请参阅《IAM用户指南》中的列出AWSIAM用户

以下代码示例显示了如何使用list-virtual-mfa-devices

AWS CLI

列出虚拟MFA设备

以下list-virtual-mfa-devices命令列出了为当前账户配置的虚拟MFA设备。

aws iam list-virtual-mfa-devices

输出:

{ "VirtualMFADevices": [ { "SerialNumber": "arn:aws:iam::123456789012:mfa/ExampleMFADevice" }, { "SerialNumber": "arn:aws:iam::123456789012:mfa/Fred" } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的启用虚拟多因素身份验证 (MFA) 设备

以下代码示例显示了如何使用put-group-policy

AWS CLI

要向组中添加策略

以下put-group-policy命令向名为的IAM组添加策略Admins

aws iam put-group-policy \ --group-name Admins \ --policy-document file://AdminPolicy.json \ --policy-name AdminRoot

此命令不生成任何输出。

该策略定义为 AdminPolicy.json JSON 文件中的文档。(文件名和扩展名没有意义。)

有关更多信息,请参阅《AWS IAM用户指南》中的管理IAM策略

以下代码示例显示了如何使用put-role-permissions-boundary

AWS CLI

示例 1:将基于自定义策略的权限边界应用于IAM角色

以下put-role-permissions-boundary示例应用名intern-boundary为指定IAM角色权限边界的自定义策略。

aws iam put-role-permissions-boundary \ --permissions-boundary arn:aws:iam::123456789012:policy/intern-boundary \ --role-name lambda-application-role

此命令不生成任何输出。

示例 2:将基于 AWS 托管策略的权限边界应用于IAM角色

以下put-role-permissions-boundary示例应用 AWS 托管PowerUserAccess策略作为指定IAM角色的权限边界。

aws iam put-role-permissions-boundary \ --permissions-boundary arn:aws:iam::aws:policy/PowerUserAccess \ --role-name x-account-admin

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

以下代码示例显示了如何使用put-role-policy

AWS CLI

将权限策略附加到IAM角色

以下 put-role-policy 命令可将权限策略附加到名为 Test-Role 的角色。

aws iam put-role-policy \ --role-name Test-Role \ --policy-name ExamplePolicy \ --policy-document file://AdminPolicy.json

此命令不生成任何输出。

该策略定义为 AdminPolicy.json JSON 文件中的文档。(文件名和扩展名没有意义。)

要将信任策略附加到角色,请使用 update-assume-role-policy 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

以下代码示例显示了如何使用put-user-permissions-boundary

AWS CLI

示例 1:根据自定义策略将权限边界应用于IAM用户

以下put-user-permissions-boundary示例应用名intern-boundary为指定IAM用户的权限边界的自定义策略。

aws iam put-user-permissions-boundary \ --permissions-boundary arn:aws:iam::123456789012:policy/intern-boundary \ --user-name intern

此命令不生成任何输出。

示例 2:根据 AWS 托管策略将权限边界应用于IAM用户

以下put-user-permissions-boundary示例应用名PowerUserAccess为指定IAM用户的权限边界的 AWS 托管策略。

aws iam put-user-permissions-boundary \ --permissions-boundary arn:aws:iam::aws:policy/PowerUserAccess \ --user-name developer

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的添加和删除IAM身份权限

以下代码示例显示了如何使用put-user-policy

AWS CLI

将策略附加到IAM用户

以下put-user-policy命令将策略附加到名为的IAM用户Bob

aws iam put-user-policy \ --user-name Bob \ --policy-name ExamplePolicy \ --policy-document file://AdminPolicy.json

此命令不生成任何输出。

该策略定义为 AdminPolicy.json JSON 文件中的文档。(文件名和扩展名没有意义。)

有关更多信息,请参阅《AWS IAM用户指南》中的添加和删除IAM身份权限

以下代码示例显示了如何使用remove-client-id-from-open-id-connect-provider

AWS CLI

从为指定 IAM OpenID Connect 提供IDs商注册的客户机列表中删除指定的客户端 ID

此示例将客户端 ID My-TestApp-3 从与其ARN为的IAMOIDC提供商IDs关联的客户端列表中删除arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com

aws iam remove-client-id-from-open-id-connect-provider --client-id My-TestApp-3 \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用remove-role-from-instance-profile

AWS CLI

从实例配置文件中删除角色

以下 remove-role-from-instance-profile 命令可将名为 Test-Role 的角色从名为 ExampleInstanceProfile 的实例配置文件中删除。

aws iam remove-role-from-instance-profile \ --instance-profile-name ExampleInstanceProfile \ --role-name Test-Role

有关更多信息,请参阅AWS IAM用户指南中的使用实例配置文件

以下代码示例显示了如何使用remove-user-from-group

AWS CLI

从IAM群组中移除用户

以下remove-user-from-group命令将名为的用户Bob从名为的IAM组中移除Admins

aws iam remove-user-from-group \ --user-name Bob \ --group-name Admins

此命令不生成任何输出。

有关更多信息,请参阅《用户指南》中的在IAM用户组中添加和删除AWS IAM用户

以下代码示例显示了如何使用reset-service-specific-credential

AWS CLI

示例 1:重置附加到提出请求的用户的特定服务凭证的密码

以下reset-service-specific-credential示例为附加到发出请求的用户的特定服务凭证生成一个新的加密强密码。

aws iam reset-service-specific-credential \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE

输出:

{ "ServiceSpecificCredential": { "CreateDate": "2019-04-18T20:45:36+00:00", "ServiceName": "codecommit.amazonaws.com", "ServiceUserName": "sofia-at-123456789012", "ServicePassword": "+oaFsNk7tLco+C/obP9GhhcOzGcKOayTmE3LnAmAmH4=", "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", "UserName": "sofia", "Status": "Active" } }

示例 2:重置附加到指定用户的服务特定凭证的密码

以下reset-service-specific-credential示例为附加到指定用户的服务专用凭证生成新的加密强密码。

aws iam reset-service-specific-credential \ --user-name sofia \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE

输出:

{ "ServiceSpecificCredential": { "CreateDate": "2019-04-18T20:45:36+00:00", "ServiceName": "codecommit.amazonaws.com", "ServiceUserName": "sofia-at-123456789012", "ServicePassword": "+oaFsNk7tLco+C/obP9GhhcOzGcKOayTmE3LnAmAmH4=", "ServiceSpecificCredentialId": "ACCAEXAMPLE123EXAMPLE", "UserName": "sofia", "Status": "Active" } }

有关更多信息,请参阅AWS CodeCommit 用户指南 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用resync-mfa-device

AWS CLI

同步MFA设备

以下resync-mfa-device示例将与IAM用户Bob关联的MFA设备与提供两个身份ARN验证arn:aws:iam::123456789012:mfa/BobsMFADevice码的身份验证器程序同步。

aws iam resync-mfa-device \ --user-name Bob \ --serial-number arn:aws:iam::210987654321:mfa/BobsMFADevice \ --authentication-code1 123456 \ --authentication-code2 987654

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》 AWS中的使用多重身份验证 (MFA)

以下代码示例显示了如何使用set-default-policy-version

AWS CLI

将指定策略的指定版本设置为策略的默认版本。

此示例将策略的v2版本设置ARNarn:aws:iam::123456789012:policy/MyPolicy为默认活动版本。

aws iam set-default-policy-version \ --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \ --version-id v2

有关更多信息,请参阅《AWS IAM用户指南》IAM中的策略和权限

以下代码示例显示了如何使用set-security-token-service-preferences

AWS CLI

设置全局终端节点令牌版本

以下set-security-token-service-preferences示例将 Amazon 配置STS为在您针对全局终端节点进行身份验证时使用版本 2 令牌。

aws iam set-security-token-service-preferences \ --global-endpoint-token-version v2Token

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的在AWS 区域中进行管理 AWS STS

以下代码示例显示了如何使用simulate-custom-policy

AWS CLI

示例 1:模拟与IAM用户或角色关联的所有IAM策略的效果

以下内容simulate-custom-policy显示了如何同时提供策略和定义变量值,以及如何模拟API调用以查看是允许还是被拒绝。以下示例显示了仅在指定日期和时间之后才允许访问数据库的策略。模拟之所以成功,是因为模拟的操作和指定的aws:CurrentTime变量都符合策略的要求。

aws iam simulate-custom-policy \ --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"*","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2018-08-16T12:00:00Z"}}}}' \ --action-names dynamodb:CreateBackup \ --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2019-04-25T11:00:00Z',ContextKeyType=date"

输出:

{ "EvaluationResults": [ { "EvalActionName": "dynamodb:CreateBackup", "EvalResourceName": "*", "EvalDecision": "allowed", "MatchedStatements": [ { "SourcePolicyId": "PolicyInputList.1", "StartPosition": { "Line": 1, "Column": 38 }, "EndPosition": { "Line": 1, "Column": 167 } } ], "MissingContextValues": [] } ] }

示例 2:模拟策略禁止的命令

以下simulate-custom-policy示例显示了模拟策略禁止的命令的结果。在此示例中,提供的日期早于保单条件所要求的日期。

aws iam simulate-custom-policy \ --policy-input-list '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Action":"dynamodb:*","Resource":"*","Condition":{"DateGreaterThan":{"aws:CurrentTime":"2018-08-16T12:00:00Z"}}}}' \ --action-names dynamodb:CreateBackup \ --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2014-04-25T11:00:00Z',ContextKeyType=date"

输出:

{ "EvaluationResults": [ { "EvalActionName": "dynamodb:CreateBackup", "EvalResourceName": "*", "EvalDecision": "implicitDeny", "MatchedStatements": [], "MissingContextValues": [] } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的使用IAMIAM策略模拟器测试策略。

以下代码示例显示了如何使用simulate-principal-policy

AWS CLI

示例 1:模拟任意IAM策略的效果

以下内容simulate-principal-policy显示如何模拟用户调用API操作并确定与该用户关联的策略是允许还是拒绝该操作。在以下示例中,用户的策略仅允许该codecommit:ListRepositories操作。

aws iam simulate-principal-policy \ --policy-source-arn arn:aws:iam::123456789012:user/alejandro \ --action-names codecommit:ListRepositories

输出:

{ "EvaluationResults": [ { "EvalActionName": "codecommit:ListRepositories", "EvalResourceName": "*", "EvalDecision": "allowed", "MatchedStatements": [ { "SourcePolicyId": "Grant-Access-To-CodeCommit-ListRepo", "StartPosition": { "Line": 3, "Column": 19 }, "EndPosition": { "Line": 9, "Column": 10 } } ], "MissingContextValues": [] } ] }

示例 2:模拟禁止命令的效果

以下simulate-custom-policy示例显示了模拟用户策略所禁止的命令的结果。在以下示例中,用户的策略仅允许在特定日期和时间之后访问 DynamoDB 数据库。在模拟中,用户尝试使用早于策略条件允许的aws:CurrentTime值访问数据库。

aws iam simulate-principal-policy \ --policy-source-arn arn:aws:iam::123456789012:user/alejandro \ --action-names dynamodb:CreateBackup \ --context-entries "ContextKeyName='aws:CurrentTime',ContextKeyValues='2018-04-25T11:00:00Z',ContextKeyType=date"

输出:

{ "EvaluationResults": [ { "EvalActionName": "dynamodb:CreateBackup", "EvalResourceName": "*", "EvalDecision": "implicitDeny", "MatchedStatements": [], "MissingContextValues": [] } ] }

有关更多信息,请参阅《AWS IAM用户指南》中的使用IAMIAM策略模拟器测试策略。

以下代码示例显示了如何使用tag-instance-profile

AWS CLI

向实例配置文件添加标签

以下tag-instance-profile命令将带有部门名称的标签添加到指定的实例配置文件中。

aws iam tag-instance-profile \ --instance-profile-name deployment-role \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-mfa-device

AWS CLI

向MFA设备添加标签

以下tag-mfa-device命令将带有部门名称的标签添加到指定MFA设备。

aws iam tag-mfa-device \ --serial-number arn:aws:iam::123456789012:mfa/alice \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-open-id-connect-provider

AWS CLI

向兼容 OpenID Connect (OIDC) 的身份提供者添加标签

以下tag-open-id-connect-provider命令将带有部门名称的标签添加到指定的OIDC身份提供商。

aws iam tag-open-id-connect-provider \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-policy

AWS CLI

向客户托管策略添加标签

以下tag-policy命令将带有部门名称的标签添加到指定的客户托管策略中。

aws iam tag-policy \ --policy-arn arn:aws:iam::123456789012:policy/billing-access \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-role

AWS CLI

为角色添加标签

以下 tag-role 命令为指定角色添加带有部门名称的标签。

aws iam tag-role --role-name my-role \ --tags '{"Key": "Department", "Value": "Accounting"}'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-saml-provider

AWS CLI

向SAML提供商添加标签

以下tag-saml-provider命令将带有部门名称的标签添加到指定的SAML提供商。

aws iam tag-saml-provider \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-server-certificate

AWS CLI

向服务器证书添加标签

以下tag-saml-provider命令将带有部门名称的标签添加到指定的服务器证书。

aws iam tag-server-certificate \ --server-certificate-name ExampleCertificate \ --tags '[{"Key": "Department", "Value": "Accounting"}]'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用tag-user

AWS CLI

为用户添加标签

以下 tag-user 命令为指定用户添加与部门关联的标签。

aws iam tag-user \ --user-name alice \ --tags '{"Key": "Department", "Value": "Accounting"}'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-instance-profile

AWS CLI

从实例配置文件中删除标签

以下untag-instance-profile命令从指定的实例配置文件中删除密钥名称为 “Department” 的所有标签。

aws iam untag-instance-profile \ --instance-profile-name deployment-role \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-mfa-device

AWS CLI

从MFA设备上移除标签

以下untag-mfa-device命令从指定MFA设备中删除所有密钥名为 “部门” 的标签。

aws iam untag-mfa-device \ --serial-number arn:aws:iam::123456789012:mfa/alice \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-open-id-connect-provider

AWS CLI

从OIDC身份提供商处移除标签

以下untag-open-id-connect-provider命令从指定的OIDC身份提供商中删除密钥名称为 “部门” 的所有标签。

aws iam untag-open-id-connect-provider \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/server.example.com \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-policy

AWS CLI

从客户托管策略中移除标签

以下untag-policy命令从指定的客户托管策略中删除密钥名称为 “Department” 的所有标签。

aws iam untag-policy \ --policy-arn arn:aws:iam::452925170507:policy/billing-access \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-role

AWS CLI

删除角色的标签

以下 untag-role 命令从指定角色中删除键名称为“部门”的所有标签。

aws iam untag-role \ --role-name my-role \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-saml-provider

AWS CLI

从SAML提供商处移除标签

以下untag-saml-provider命令从指定的实例配置文件中删除密钥名称为 “Department” 的所有标签。

aws iam untag-saml-provider \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/ADFS \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-server-certificate

AWS CLI

从服务器证书中删除标签

以下untag-server-certificate命令从指定的服务器证书中删除所有密钥名为 “部门” 的标签。

aws iam untag-server-certificate \ --server-certificate-name ExampleCertificate \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用untag-user

AWS CLI

删除用户的标签

以下 untag-user 命令从指定用户中删除键名称为“部门”的所有标签。

aws iam untag-user \ --user-name alice \ --tag-keys Department

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM资源添加标签

以下代码示例显示了如何使用update-access-key

AWS CLI

激活或停用用户的访问密钥 IAM

以下update-access-key命令为名为的IAM用户停用指定的访问密钥(访问密钥 ID 和私有访问密钥)。Bob

aws iam update-access-key \ --access-key-id AKIAIOSFODNN7EXAMPLE \ --status Inactive \ --user-name Bob

此命令不生成任何输出。

停用密钥意味着它不能用于以编程方式访问。 AWS但密钥仍然可用,可以重新激活。

有关更多信息,请参阅《用户指南》中的AWS IAM管理IAM用户访问密钥

以下代码示例显示了如何使用update-account-password-policy

AWS CLI

设置或更改当前账户密码策略

以下 update-account-password-policy 命令将密码策略设置为要求长度最少为八个字符,并要求在密码中包含一个或多个数字。

aws iam update-account-password-policy \ --minimum-password-length 8 \ --require-numbers

此命令不生成任何输出。

对账户密码策略的更改会影响为该账户中的IAM用户创建的任何新密码。密码策略更改不会影响现有的密码。

有关更多信息,请参阅《AWS IAM用户指南》中的为IAM用户设置账户密码策略

以下代码示例显示了如何使用update-assume-role-policy

AWS CLI

更新IAM角色的信任策略

以下 update-assume-role-policy 命令更新名为 Test-Role 的角色的信任策略。

aws iam update-assume-role-policy \ --role-name Test-Role \ --policy-document file://Test-Role-Trust-Policy.json

此命令不生成任何输出。

信任策略定义为 test -role-trust- Policy.json JSON 文件中的文档。(文件名和扩展名没有意义。) 信任策略必须指定主体。

要更新角色的权限策略,请使用 put-role-policy 命令。

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAM角色

以下代码示例显示了如何使用update-group

AWS CLI

重命名IAM群组

以下update-group命令将IAM组的名称更改TestTest-1

aws iam update-group \ --group-name Test \ --new-group-name Test-1

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的重命名AWS IAM用户

以下代码示例显示了如何使用update-login-profile

AWS CLI

更新IAM用户的密码

以下update-login-profile命令为名为的IAM用户创建新密码Bob

aws iam update-login-profile \ --user-name Bob \ --password <password>

此命令不生成任何输出。

要为账户设置密码策略,请使用 update-account-password-policy 命令。如果新密码违反了账户密码策略,则该命令将返回 PasswordPolicyViolation 错误。

如果账户密码策略允许他们这样做,则IAM用户可以使用change-password命令更改自己的密码。

将密码保存在安全位置。如果密码丢失,则将无法恢复,必须使用 create-login-profile 命令创建新密码。

有关更多信息,请参阅《IAM用户指南》中的管理AWS IAM用户密码

以下代码示例显示了如何使用update-open-id-connect-provider-thumbprint

AWS CLI

将现有服务器证书指纹列表替换为新列表

此示例更新了arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com要使用新指纹的OIDC提供商ARN的证书指纹列表。

aws iam update-open-id-connect-provider-thumbprint \ --open-id-connect-provider-arn arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com \ --thumbprint-list 7359755EXAMPLEabc3060bce3EXAMPLEec4542a3

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的创建 OpenID Connect (OIDC) 身份提供商

以下代码示例显示了如何使用update-role-description

AWS CLI

更改IAM角色的描述

以下update-role命令将IAM角色的描述更改production-roleMain production role

aws iam update-role-description \ --role-name production-role \ --description 'Main production role'

输出:

{ "Role": { "Path": "/", "RoleName": "production-role", "RoleId": "AROA1234567890EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/production-role", "CreateDate": "2017-12-06T17:16:37+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": {} } ] }, "Description": "Main production role" } }

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

以下代码示例显示了如何使用update-role

AWS CLI

更改IAM角色的描述或会话持续时间

以下update-role命令将IAM角色描述更改为,production-roleMain production role并将最长会话持续时间设置为 12 小时。

aws iam update-role \ --role-name production-role \ --description 'Main production role' \ --max-session-duration 43200

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》中的修改角色

以下代码示例显示了如何使用update-saml-provider

AWS CLI

更新现有SAML提供商的元数据文档

此示例arn:aws:iam::123456789012:saml-provider/SAMLADFS使用文件中的新SAML元数据文档更新IAM其ARN中的SAML提供程序SAMLMetaData.xml

aws iam update-saml-provider \ --saml-metadata-document file://SAMLMetaData.xml \ --saml-provider-arn arn:aws:iam::123456789012:saml-provider/SAMLADFS

输出:

{ "SAMLProviderArn": "arn:aws:iam::123456789012:saml-provider/SAMLADFS" }

有关更多信息,请参阅《AWS IAM用户指南》中的创建IAMSAML身份提供商

以下代码示例显示了如何使用update-server-certificate

AWS CLI

更改您 AWS 账户中服务器证书的路径或名称

以下 update-server-certificate 命令可将证书名称从 myServerCertificate 更改为 myUpdatedServerCertificate。它还会将路径更改为,以/cloudfront/便 Amazon CloudFront 服务可以对其进行访问。此命令不生成任何输出。运行 list-server-certificates 命令即可查看更新结果。

aws-iam update-server-certificate \ --server-certificate-name myServerCertificate \ --new-server-certificate-name myUpdatedServerCertificate \ --new-path /cloudfront/

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》IAM中的 “管理服务器证书”。

以下代码示例显示了如何使用update-service-specific-credential

AWS CLI

示例 1:更新请求用户的服务专用证书的状态

以下update-service-specific-credential示例更改了向其发出请求的用户的指定凭据的状态。Inactive

aws iam update-service-specific-credential \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE \ --status Inactive

此命令不生成任何输出。

示例 2:更新指定用户的服务专用凭证的状态

以下update-service-specific-credential示例将指定用户的凭据状态更改为 “非活动”。

aws iam update-service-specific-credential \ --user-name sofia \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE \ --status Inactive

此命令不生成任何输出。

有关更多信息,请参阅《AWS CodeCommit 用户指南》 CodeCommit中的创建用于HTTPS连接的 Git 凭证

以下代码示例显示了如何使用update-signing-certificate

AWS CLI

为用户激活或停用签名证书 IAM

以下update-signing-certificate命令为名为的IAM用户停用指定的签名证书。Bob

aws iam update-signing-certificate \ --certificate-id TA7SMP42TDN5Z26OBPJE7EXAMPLE \ --status Inactive \ --user-name Bob

要获取签名证书的 ID,请使用 list-signing-certificates 命令。

有关更多信息,请参阅 Amazon EC2 用户指南中的管理签名证书

以下代码示例显示了如何使用update-ssh-public-key

AWS CLI

更改SSH公钥的状态

以下update-ssh-public-key命令将指定公钥的状态更改为Inactive

aws iam update-ssh-public-key \ --user-name sofia \ --ssh-public-key-id APKA1234567890EXAMPLE \ --status Inactive

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM用户指南》 CodeCommit中的 “使用SSH密钥和 SSH with”。

以下代码示例显示了如何使用update-user

AWS CLI

更改IAM用户名

以下update-user命令将IAM用户名更改BobRobert

aws iam update-user \ --user-name Bob \ --new-user-name Robert

此命令不生成任何输出。

有关更多信息,请参阅《IAM用户指南》中的重命名AWS IAM用户

以下代码示例显示了如何使用upload-server-certificate

AWS CLI

将服务器证书上传到您的 AWS 账户

以下upload-server-certificate命令将服务器证书上传到您的 AWS 账户。在此示例中,证书位于 public_key_cert_file.pem 文件中,关联的私有密钥位于 my_private_key.pem 文件中,而证书颁发机构(CA)提供的证书链位于 my_certificate_chain_file.pem 文件中。文件上传完毕后,该文件将以该名称显示myServerCertificate。以 file:// 开头的参数让命令读取文件的内容,将其用作参数值,而不是文件名本身。

aws iam upload-server-certificate \ --server-certificate-name myServerCertificate \ --certificate-body file://public_key_cert_file.pem \ --private-key file://my_private_key.pem \ --certificate-chain file://my_certificate_chain_file.pem

输出:

{ "ServerCertificateMetadata": { "Path": "/", "ServerCertificateName": "myServerCertificate", "ServerCertificateId": "ASCAEXAMPLE123EXAMPLE", "Arn": "arn:aws:iam::1234567989012:server-certificate/myServerCertificate", "UploadDate": "2019-04-22T21:13:44+00:00", "Expiration": "2019-10-15T22:23:16+00:00" } }

有关更多信息,请参阅《使用IAM》指南中的创建、上传和删除服务器证书。

以下代码示例显示了如何使用upload-signing-certificate

AWS CLI

上传IAM用户的签名证书

以下upload-signing-certificate命令为名为的IAM用户上传签名Bob证书。

aws iam upload-signing-certificate \ --user-name Bob \ --certificate-body file://certificate.pem

输出:

{ "Certificate": { "UserName": "Bob", "Status": "Active", "CertificateBody": "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----", "CertificateId": "TA7SMP42TDN5Z26OBPJE7EXAMPLE", "UploadDate": "2013-06-06T21:40:08.121Z" } }

证书格式为名为 certific ate.pe m 的文件中。PEM

有关更多信息,请参阅《使用IAM》指南中的创建和上传用户签名证书。

以下代码示例显示了如何使用upload-ssh-public-key

AWS CLI

上传SSH公钥并将其与用户关联

以下upload-ssh-public-key命令上传在文件中找到的公钥sshkey.pub并将其附加到用户sofia

aws iam upload-ssh-public-key \ --user-name sofia \ --ssh-public-key-body file://sshkey.pub

输出:

{ "SSHPublicKey": { "UserName": "sofia", "SSHPublicKeyId": "APKA1234567890EXAMPLE", "Fingerprint": "12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef", "SSHPublicKeyBody": "ssh-rsa <<long string generated by ssh-keygen command>>", "Status": "Active", "UploadDate": "2019-04-18T17:04:49+00:00" } }

有关如何以适合此命令的格式生成密钥的更多信息,请参阅《用户指南》SSH和《AWS CodeCommit 用户指南》和 Linux、macOS 或 Unix:为 Git 和 CodeCommit /或SSH和 Windows 设置公钥和私钥:为 Git 设置公钥和 CodeCommit私钥。