为 Session Manager 创建自定义 IAM 角色
您可以创建一个仅为在您的实例上执行 Session Manager 操作提供权限的自定义 Amazon Identity and Access Management (IAM) 角色。您还可以在其中包含一个策略,以提供将会话日志发送到 Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs 所需的权限。
创建 IAM 角色后,请参阅将 IAM 角色附加到实例和附加或替换实例配置文件
主题
创建具有最小 Session Manager 权限的 IAM 角色(控制台)
使用以下过程可创建一个自定义 IAM 角色,其策略仅提供在实例上执行 Session Manager 操作的权限。
创建具有最小 Session Manager 权限的实例配置文件(控制台)
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中选择策略,然后选择创建策略。(如果显示 Get Started (入门) 按钮,请选择此按钮,然后选择 Create Policy (创建策略)。)
-
请选择 JSON 选项卡。
-
将原定设置内容替换为以下策略。将
key-name
(密钥名称)替换为要使用的 KMS 密钥的 Amazon Resource Name (ARN)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceInformation", "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "
key-name
" } ] }有关使用 KMS 密钥加密会话数据的信息,请参阅 启用会话数据的 KMS 密钥加密(控制台)。
如果您不为会话数据使用 Amazon KMS 加密,可以从策略中删除以下内容。
, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "
key-name
" } -
请选择下一步:标签。
-
(可选)通过选择 Add tag(添加标签)并输入策略的首选标签来添加标签。
-
请选择 Next: Review(下一步:审核)。
-
在查看策略页面上,对于名称,输入内联策略的名称,例如
SessionManagerPermissions
。 -
(可选)对于 Description (描述),输入策略的描述。
-
选择 Create policy (创建策略)。
-
在导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)。
-
在 Create role(创建角色)页面上,选择 Amazon service( 服务),对于 Use case(使用案例),选择 EC2。
-
选择 Next (下一步)。
-
在 Add permissions(添加权限)页面上,选中刚刚创建的策略名称左侧的复选框,例如
SessionManagerPermissions
。 -
选择 Next (下一步)。
-
在 Name, review, and create(名称、审核和创建)页面中,对于 Role name(角色名称),输入 IAM 角色的名称,例如
MySessionManagerRole
。 -
(可选)对于角色描述,输入实例配置文件的描述。
-
(可选)通过选择 Add tag(添加标签)并输入角色的首选标签来添加标签。
选择 Create role(创建角色)。
有关 ssmmessages
操作的信息,请参阅 参考:ec2messages、ssmmessages 和其他 API 操作。
创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色(控制台)
使用以下过程创建一个自定义 IAM 角色,其策略提供在实例上执行 Session Manager 操作的权限。此策略还提供了将会话日志存储在 Amazon Simple Storage Service (Amazon S3) 存储桶和 Amazon CloudWatch Logs 日志组中所需的权限。
要将会话日志输出到其他 Amazon Web Services 账户拥有的 Simple Storage Service (Amazon S3) 存储桶,您必须将 IAM s3:PutObjectAcl
权限添加到策略。如果此权限未添加,拥有 Amazon S3 存储桶的账户将无法访问会话输出日志。
有关指定存储会话日志的首选项的信息,请参阅 记录会话活动。
要创建具有 Session Manager、Amazon S3 和 CloudWatch Logs 权限的 IAM 角色(控制台),请执行以下步骤
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中选择策略,然后选择创建策略。(如果显示 Get Started (入门) 按钮,请选择此按钮,然后选择 Create Policy (创建策略)。)
-
请选择 JSON 选项卡。
-
将原定设置内容替换为以下策略。将每个
示例资源占位符
替换为您自己的信息。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel", "ssm:UpdateInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/s3-bucket-prefix
/*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "key-name
" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "*" } ] } -
请选择下一步:标签。
-
(可选)通过选择 Add tag(添加标签)并输入策略的首选标签来添加标签。
-
请选择 Next: Review(下一步:审核)。
-
在查看策略页面上,对于名称,输入内联策略的名称,例如
SessionManagerPermissions
。 -
(可选)对于 Description (描述),输入策略的描述。
-
选择 Create policy (创建策略)。
-
在导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)。
-
在 Create role(创建角色)页面上,选择 Amazon service( 服务),对于 Use case(使用案例),选择 EC2。
-
选择 Next (下一步)。
-
在 Add permissions(添加权限)页面上,选中刚刚创建的策略名称左侧的复选框,例如
SessionManagerPermissions
。 -
选择 Next (下一步)。
-
在 Name, review, and create(名称、审核和创建)页面中,对于 Role name(角色名称),输入 IAM 角色的名称,例如
MySessionManagerRole
。 -
(可选)对于 Role description(角色描述),输入角色的描述。
-
(可选)通过选择 Add tag(添加标签)并输入角色的首选标签来添加标签。
-
选择 Create role(创建角色)。