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

使用 AWS CLI 的 IAM 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 IAM 结合使用,来执行操作和实现常见场景。

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

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

主题

操作

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

AWS CLI

将客户端 ID(受众)添加到 Open-ID Connect(OIDC)提供者

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

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 命令可将名为 Bob 的 IAM 用户添加到名为 Admins 的 IAM 组。

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

此命令不生成任何输出。

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

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

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

AWS CLI

将托管策略附加到 IAM 组

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

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

此命令不生成任何输出。

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

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

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

AWS CLI

将托管策略附加到 IAM 角色

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

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 命令可将名为 AdministratorAccess 的 AWS 托管策略附加到名为 Alice 的 IAM 用户。

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-password.json 的 JSON 文件一起使用。

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

此命令不生成任何输出。

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

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

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

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

AWS CLI

为 IAM 用户创建访问密钥

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

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 命令可为 AWS 账户创建别名 examplecorp

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

此命令不生成任何输出。

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

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

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

AWS CLI

创建 IAM 组

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

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" } }

有关更多信息,请参阅《AWS IAM 用户指南》中的创建 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 命令更改自己的密码。

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

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

以下代码示例演示了如何使用 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 提供者指纹的更多信息,请参阅《AWS IAM 用户指南》中的获取 OpenID Connect 身份提供者的指纹

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

AWS CLI

创建新版本的托管策略

此示例创建了一个新的 v2 版本的 IAM policy,其 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 policy 版本控制

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

AWS CLI

示例 1:创建客户托管策略

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

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

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

{ "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 文档,它授予对名为 my-bucket 的 Amazon S3 存储桶的所有 Put、List 和 Get 操作的访问权限。

{ "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 文档,它授予对名为 my-bucket 的 Amazon S3 存储桶的所有 Put、List 和 Get 操作的访问权限。

{ "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 角色

以下命令创建带有标签的 IAM 角色 Test-Role。此示例使用带有以下 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 提供者

此示例在 IAM 中创建了一个名为 MySAMLProvider 的新 SAML 提供者。SAMLMetaData.xml 文件中的 SAML 元数据文档对其进行了描述。

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

输出:

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

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

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

以下代码示例演示了如何使用 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 用户指南》中的创建 Git 凭证以用于通过 HTTPS 连接 CodeCommit

以下代码示例演示了如何使用 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" } }

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

示例 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" } ] } }

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

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

以下 create-user 命令创建一个名为 Bob 且权限边界为 AmazonS3FullAccess 的 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 设备

此示例创建名为 BobsMFADevice 的新虚拟 MFA 设备。它会创建一个包含引导信息的、名为 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 设备

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

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

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

{ "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/*\"}]}}]}}}" }

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

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

AWS CLI

删除 IAM 用户的访问密钥

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

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 及其别名

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

以下代码示例演示了如何使用 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 策略

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

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

AWS CLI

删除 IAM 组

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

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

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM 用户指南》中的删除 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 命令删除名为 Bob 的 IAM 用户的密码。

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

此命令不生成任何输出。

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

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

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

AWS CLI

删除 IAM OpenID Connect 身份提供者

此示例删除了连接到提供者 example.oidcprovider.com 的 IAM OIDC 提供者。

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

删除托管策略的某个版本

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

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 为 arn:aws:iam::123456789012:saml-provider/SAMLADFSProvider 的 IAM SAML 2.0 提供者。

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

此命令不生成任何输出。

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

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

以下代码示例演示了如何使用 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 用户指南》中的创建 Git 凭证以用于通过 HTTPS 连接 CodeCommit

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

AWS CLI

删除 IAM 用户的签名证书

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

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 用户 sofia 的指定 SSH 公钥。

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

此命令不生成任何输出。

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

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

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

AWS CLI

删除 IAM 用户的权限边界

以下 delete-user-permissions-boundary 示例删除了附加到名为 intern 的 IAM 用户的权限边界。要对用户应用权限边界,请使用 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 命令可将指定策略从名为 Bob 的 IAM 用户中移除。

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

此命令不生成任何输出。

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

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

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

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

AWS CLI

删除 IAM 用户

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

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

此命令不生成任何输出。

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

  • 有关 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

从组中分离策略

此示例将从名为 Testers 的组重删除 ARN 为 arn:aws:iam::123456789012:policy/TesterAccessPolicy 的托管策略。

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

此命令不生成任何输出。

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

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

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

AWS CLI

从角色分离策略

此示例将从名为 FedTesterRole 的角色删除具有 ARN arn:aws:iam::123456789012:policy/FederatedTesterAccessPolicy 的托管策略。

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

从用户分离策略

此示例将从用户 Bob 删除具有 ARN arn:aws:iam::123456789012:policy/TesterPolicy 的托管策略。

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

此命令不生成任何输出。

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

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

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

AWS CLI

启用 MFA 设备

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

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 示例启动一个后台作业来为组织 o-4fxmplt198 中的账户 ID 123456789012 创建访问报告。创建报告后,您可以通过运行 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 示例启动一个后台作业来为组织 o-4fxmplt198 的组织单位 ou-c3xb-lmu7j2yg 中的账户 ID 234567890123 创建访问报告。创建报告后,您可以通过运行 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 示例启动后台作业以生成一份报告,其中列出使用名为 intern-boundary 的自定义策略的 IAM 用户和其他实体所访问的服务。创建报告后,您可以通过运行 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 配额

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

以下代码示例演示了如何使用 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 Policy Simulator(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 Policy Simulator(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 策略

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

以下代码示例演示了如何使用 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": [] }

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

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

以下代码示例演示了如何使用 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 用户指南》中的使用实例配置文件

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

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

AWS CLI

获取 IAM 用户的密码信息

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

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)。

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

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

以下代码示例演示了如何使用 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)

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

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

AWS CLI

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

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

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 示例显示了以前为 AWS Organizations 实体生成的访问报告。要生成报告,请使用 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

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

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

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 中的策略和权限

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

以下代码示例演示了如何使用 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 中的策略和权限

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

以下代码示例演示了如何使用 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 角色

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

以下代码示例演示了如何使用 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 角色

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

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

AWS CLI

检索 SAML 提供者元文档

此示例检索有关 ARN 为 arn:aws:iam::123456789012:saml-provider/SAMLADFS 的 SAML 2.0 提供者的详细信息。响应包括您从身份提供者那里获得的、用于创建 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 用户指南》中的创建 IAM SAML 身份提供者

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

以下代码示例演示了如何使用 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 用户指南》中的将 SSH 密钥和 SSH 用于 CodeCommit

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

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

AWS CLI

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

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

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 中的策略和权限

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

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

AWS CLI

获取有关 IAM 用户的信息

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

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" } }

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

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

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

AWS CLI

列出 IAM 用户的访问密钥 ID

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

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 用户的访问密钥

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

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

AWS CLI

列出账户别名

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

aws iam list-account-aliases

输出:

{ "AccountAliases": [ "mycompany" ] }

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

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

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

AWS CLI

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

此示例将返回附加到 AWS 账户中名为 Admins 的 IAM 组的托管策略名称和 ARN。

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 账户中名为 SecurityAuditRole 的 IAM 角色的托管策略名称和 ARN。

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 用户的托管策略名称和 ARN。

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 策略

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

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

AWS CLI

列出 IAM 用户所属的组

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

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" } ] }

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

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

以下代码示例演示了如何使用 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" } ] }

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

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

以下代码示例演示了如何使用 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 资源

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

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

AWS CLI

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

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

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)

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

以下代码示例演示了如何使用 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

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

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

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 用户 sofia 访问 AWS CodeCommit 服务的权限的策略列表。

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 中的策略和权限

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 中的策略和权限

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

以下代码示例演示了如何使用 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 角色

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 角色

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

以下代码示例演示了如何使用 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 用户指南》中的创建 IAM SAML 身份提供者

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

以下代码示例演示了如何使用 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 用户指南》中的创建 Git 凭证以用于通过 HTTPS 连接 CodeCommit

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

AWS CLI

检索凭证列表

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

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 用户指南》中的创建 Git 凭证以用于通过 HTTPS 连接 CodeCommit

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

AWS CLI

列出 IAM 用户的签名证书

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

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 用户 sofia 的 SSH 公钥。

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 用户指南》中的将 SSH 密钥和 SSH 用于 CodeCommit

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

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

AWS CLI

列出 IAM 用户的策略

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

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

输出:

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

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

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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" } ] }

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

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

以下代码示例演示了如何使用 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 命令可将策略添加到名为 Admins 的 IAM 组。

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

此命令不生成任何输出。

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

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

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

以下代码示例演示了如何使用 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 用户指南》中的修改角色

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

以下代码示例演示了如何使用 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 的 AWS 托管策略作为指定 IAM 用户的权限边界。

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 命令可将策略附加到名为 Bob 的 IAM 用户。

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

此命令不生成任何输出。

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

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

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

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

AWS CLI

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

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

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 的用户从名为 Admins 的 IAM 组中删除。

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

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM 用户指南》中的在 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 用户指南》中的创建 Git 凭证以用于通过 HTTPS 连接 CodeCommit

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

AWS CLI

同步 MFA 设备

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

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)

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

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

AWS CLI

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

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

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 用户指南》中的使用 IAM policy simulator 测试 IAM 策略

以下代码示例演示了如何使用 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 用户指南》中的使用 IAM policy simulator 测试 IAM 策略

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 tag-role

AWS CLI

为角色添加标签

以下 tag-role 命令为指定角色添加带有部门名称的标签。

aws iam tag-role --role-name my-role \ --tags '{"Key": "Department", "Value": "Accounting"}'

此命令不生成任何输出。

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

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 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 设备移除带有键名称“Department”的任何标签。

aws iam untag-mfa-device \ --serial-number arn:aws:iam::123456789012:mfa/alice \ --tag-keys Department

此命令不生成任何输出。

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

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

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

AWS CLI

从 OIDC 身份提供者移除标签

以下 untag-open-id-connect-provider 命令从指定 OIDC 身份提供者中移除带有键名称“Department”的任何标签。

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 资源

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

以下代码示例演示了如何使用 untag-role

AWS CLI

从角色移除标签

以下 untag-role 命令从指定角色中移除带有键名称“Department”的任何标签。

aws iam untag-role \ --role-name my-role \ --tag-keys Department

此命令不生成任何输出。

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

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

以下代码示例演示了如何使用 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 资源

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

以下代码示例演示了如何使用 untag-server-certificate

AWS CLI

从服务器证书中移除标签

以下 untag-server-certificate 命令从指定服务器证书中移除带有键名称“Department”的任何标签。

aws iam untag-server-certificate \ --server-certificate-name ExampleCertificate \ --tag-keys Department

此命令不生成任何输出。

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

以下代码示例演示了如何使用 untag-user

AWS CLI

从用户中移除标签

以下 untag-user 命令从指定用户中移除带有键名称“Department”的任何标签。

aws iam untag-user \ --user-name alice \ --tag-keys Department

此命令不生成任何输出。

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

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

以下代码示例演示了如何使用 update-access-key

AWS CLI

激活或停用 IAM 用户的访问密钥

以下 update-access-key 命令停用名为 Bob 的 IAM 用户的指定访问密钥(访问密钥 ID 和秘密访问密钥)。

aws iam update-access-key \ --access-key-id AKIAIOSFODNN7EXAMPLE \ --status Inactive \ --user-name Bob

此命令不生成任何输出。

停用密钥意味着它不能用于以编程方式访问 AWS。但密钥仍然可用且可以重新激活。

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

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

以下代码示例演示了如何使用 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 组 Test 的名称更改为 Test-1

aws iam update-group \ --group-name Test \ --new-group-name Test-1

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM 用户指南》中的重命名 IAM 用户组

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

以下代码示例演示了如何使用 update-login-profile

AWS CLI

更新 IAM 用户的密码

以下 update-login-profile 命令为名为 Bob 的 IAM 用户创建新密码。

aws iam update-login-profile \ --user-name Bob \ --password <password>

此命令不生成任何输出。

要为账户设置密码策略,请使用 update-account-password-policy 命令。如果新密码违反了账户密码策略,则该命令将返回 PasswordPolicyViolation 错误。

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

将密码保存在安全位置。如果密码丢失,则将无法恢复,必须使用 create-login-profile 命令创建新密码。

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

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

以下代码示例演示了如何使用 update-open-id-connect-provider-thumbprint

AWS CLI

将现有服务器证书指纹列表替换为新列表

此示例更新了其 ARN 为 arn:aws:iam::123456789012:oidc-provider/example.oidcprovider.com 的 OIDC 提供者的证书指纹列表以使用新指纹。

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-role 的描述更改为 Main 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-role 的描述更改为 Main production role,并将最长会话持续时间设置为 12 小时。

aws iam update-role \ --role-name production-role \ --description 'Main production role' \ --max-session-duration 43200

此命令不生成任何输出。

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

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

以下代码示例演示了如何使用 update-saml-provider

AWS CLI

更新现有 SAML 提供者的元数据文档

此示例使用文件 SAMLMetaData.xml 中的新 SAML 元数据文档更新 ARN 为 arn:aws:iam::123456789012:saml-provider/SAMLADFS 的 IAM 中的 SAML 提供者。

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 用户指南》中的创建 IAM SAML 身份提供者

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

以下代码示例演示了如何使用 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 示例将指定用户的凭证状态更改为“Inactive”。

aws iam update-service-specific-credential \ --user-name sofia \ --service-specific-credential-id ACCAEXAMPLE123EXAMPLE \ --status Inactive

此命令不生成任何输出。

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

以下代码示例演示了如何使用 update-signing-certificate

AWS CLI

激活或停用 IAM 用户的签名证书

以下 update-signing-certificate 命令停用名为 Bob 的 IAM 用户的指定签名证书。

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 用户指南》中的将 SSH 密钥和 SSH 用于 CodeCommit

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

以下代码示例演示了如何使用 update-user

AWS CLI

更改 IAM 用户的名称

以下 update-user 命令将 IAM 用户 Bob 的名称更改为 Robert

aws iam update-user \ --user-name Bob \ --new-user-name Robert

此命令不生成任何输出。

有关更多信息,请参阅《AWS IAM 用户指南》中的重命名 IAM 用户组

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

以下代码示例演示了如何使用 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 命令上传名为 Bob 的 IAM 用户的签名证书。

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" } }

证书位于名为 certificate.pem 的文件中,采用 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" } }

有关如何以适合此命令的格式生成密钥的更多信息,请参阅《AWS CodeCommit 用户指南》中的 SSH 和 Linux、macOS 或 Unix:为 Git 和 CodeCommit 设置公钥和私钥,或 SSH 和 Windows:为 Git 和 CodeCommit 设置公钥和私钥

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