在 Snow Family 设备上IAM本地使用 - AWS Snowball Edge 开发者指南

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

在 Snow Family 设备上IAM本地使用

AWS Identity and Access Management (IAM) 可帮助您安全地控制对 AWS Snowball Edge 设备上运行的 AWS 资源的访问权限。您可以使用IAM控制谁经过身份验证(登录)和授权(拥有权限)使用资源。

IAM在您的设备上本地支持。您可以使用本地IAM服务来创建新用户并向他们附加IAM策略。您可以使用这些策略以允许执行分配的任务所需的访问权限。例如,您可以允许用户传输数据,但限制他们创建与 Amazon EC2 兼容的新实例的能力。

此外,您还可以在设备上使用 AWS Security Token Service (AWS STS) 创建基于会话的本地凭证。有关该IAM服务的信息,请参阅《IAM用户指南》中的入门

您设备的根凭证无法禁用,也不能使用账户中的策略明确拒绝 AWS 账户 根用户的访问权限。我们建议您保护根用户访问密钥并创建IAM用户凭证,以便与您的设备进行日常交互。

重要

本节中的文档适用于在 AWS Snowball Edge 设备上IAM本地使用。有关IAM在中使用的信息 AWS Cloud,请参阅Identity and Access Management AWS Snowball

要使 AWS 服务在 Snowball Edge 上正常运行,必须允许服务使用端口。有关更多信息,请参阅 Snow Family 设备上 AWS 服务的端口要求

在 Snowball Edge 上使用 AWS CLI 和API操作

在 Snowball Edge 上使用 AWS CLI 或API操作发IAM出、、Amazon S3 和亚马逊EC2命令时,必须将指定region为 “。” AWS STSsnow 您可以使用命令本身aws configure或在命令本身内执行此操作,如以下示例所示。

aws configure --profile abc AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json

Or

aws iam list-users --profile snowballEdge --endpoint http://192.0.2.0:6078 --region snow
注意

在 AWS Snowball Edge 上本地使用的访问密钥 ID 和访问机密密钥不能与中的密钥互换。 AWS Cloud

Snowball IAM AWS CLI Edge 上支持的命令列表

以下是 Snowball Edge 设备IAM支持的 AWS CLI 命令和选项子集的描述。如果某个命令或选项未在下方列出,则表明它不受支持。描述中注明了不支持的命令参数。

  • attach-role-policy— 将指定的托管策略附加到指定IAM角色。

  • attach-user-policy— 将指定的托管策略附加到指定用户。

  • create-access-key— 为指定用户创建新的本地IAM私有 AWS 访问密钥和相应的访问密钥 ID。

  • create- policy — 为您的设备创建新的IAM托管策略。

  • create- role — 为您的设备创建新的本地IAM角色。 支持以下参数:

    • Tags

    • PermissionsBoundary

  • create-user — 为您的设备创建新的本地IAM用户。 支持以下参数:

    • Tags

    • PermissionsBoundary

  • delete-access-key— 删除指定用户的新本地IAM私有访问密钥和相应的 AWS 访问密钥 ID。

  • delete-policy:删除指定的托管策略。

  • delete-role:删除指定的角色。

  • delete-user:删除指定的用户。

  • detach-role-policy— 从指定角色中删除指定的托管策略。

  • detach-user-policy— 从指定用户中移除指定的托管策略。

  • get-p olicy-检索有关指定托管策略的信息,包括策略的默认版本以及该策略所关联的本地IAM用户、组和角色的总数。

  • get-policy-version— 检索有关指定托管策略的指定版本的信息,包括策略文档。

  • get-ro le-检索有关指定角色的信息,包括角色的路径、GUIDARN、以及该角色的信任策略,该策略授予代入该角色的权限。

  • get-user — 检索有关指定IAM用户的信息,包括用户的创建日期、路径、唯一 ID 和。ARN

  • list-access-keys— 返回与指定IAM用户IDs关联的访问密钥的相关信息。

  • list-attached-role-policies— 列出附加到指定IAM角色的所有托管策略。

  • list-attached-user-policies— 列出附加到指定IAM用户的所有托管策略。

  • list-entities-for-policy— 列出指定托管策略所关联的所有本地IAM用户、组和角色。

    • --EntityFilter:仅支持 userrole 值。

  • list-policies:列出您的本地 AWS 账户中可用的所有托管策略。 支持以下参数:

    • --PolicyUsageFilter

  • list-role s — 列出具有指定路径前缀的本地IAM角色。

  • list-user s — 列出具有指定路径前缀的IAM用户。

  • update-access-key— 将指定访问密钥的状态从 “活动” 更改为 “非活动”,反之亦然。

  • update-assume-role-policy— 更新授予IAM实体代入角色权限的策略。

  • update-role:更新角色的描述或最大会话持续时间设置。

  • update-user-更新指定用户的名称和/或路径。IAM

在 Snow Family 设备上支持的IAMAPI操作

以下是您可以在 Snowball Edge 上使用的IAMAPI操作,以及参考资料中对其描述的IAMAPI链接。

  • AttachRolePolicy— 将指定的托管策略附加到指定IAM角色。

  • AttachUserPolicy— 将指定的托管策略附加到指定用户。

  • CreateAccessKey— 为指定用户创建新的本地IAM私有 AWS 访问密钥和相应的访问密钥 ID。

  • CreatePolicy— 为您的设备创建新的IAM托管策略。

  • CreateRole— 为您的设备创建新的本地IAM角色。

  • CreateUser— 为您的设备创建新的本地IAM用户。

    支持以下参数:

    • Tags

    • PermissionsBoundary

  • DeleteAccessKey— 删除指定的访问密钥。

  • DeletePolicy— 删除指定的托管策略。

  • DeleteRole— 删除指定的角色。

  • DeleteUser— 删除指定的用户。

  • DetachRolePolicy— 从指定角色中删除指定的托管策略。

  • DetachUserPolicy— 从指定用户中移除指定的托管策略。

  • GetPolicy— 检索有关指定托管策略的信息,包括策略的默认版本以及该策略所关联的本地IAM用户、组和角色的总数。

  • GetPolicyVersion— 检索有关指定托管策略的指定版本的信息,包括策略文档。

  • GetRole— 检索有关指定角色的信息,包括角色的路径、GUIDARN、以及该角色的信任策略,该策略授予代入该角色的权限。

  • GetUser— 检索有关指定IAM用户的信息,包括用户的创建日期、路径、唯一 ID 和ARN。

  • ListAccessKeys— 返回与指定IAM用户IDs关联的访问密钥的相关信息。

  • ListAttachedRolePolicies— 列出附加到指定IAM角色的所有托管策略。

  • ListAttachedUserPolicies— 列出附加到指定IAM用户的所有托管策略。

  • ListEntitiesForPolicy— 检索有关指定IAM用户的信息,包括用户的创建日期、路径、唯一 ID 和ARN。

    • --EntityFilter:仅支持 userrole 值。

  • ListPolicies— 列出本地可用的所有托管策略 AWS 账户。 支持以下参数:

    • --PolicyUsageFilter

  • ListRoles— 列出具有指定路径前缀的本地IAM角色。

  • ListUsers— 列出具有指定路径前缀的IAM用户。

  • UpdateAccessKey— 将指定访问密钥的状态从 “活动” 更改为 “非活动”,反之亦然。

  • UpdateAssumeRolePolicy— 更新授予IAM实体代入角色权限的策略。

  • UpdateRole— 更新角色的描述或最长会话持续时间设置。

  • UpdateUser— 更新指定IAM用户的名称和/或路径。

Snow Family 设备上支持的IAM策略版本和语法

以下是该政策的本地IAM支持版本 2012-10-17 和IAM策略语法的子集。

策略类型 支持的语法
基于身份的策略(用户/角色策略) Effect”、“Action”和“Resource
注意

本地IAM不支持 Condition “”、NotAction “”、“NotResource” 和 “Principal”。

基于资源的策略(角色信任策略) Effect”、“Action”和“Principal
注意

对于委托人,只允许使用 AWS 账户 身份证或委托人ID。

IAMSnow Family 设备上的策略示例

注意

AWS Identity and Access Management (IAM) 用户需要"snowballdevice:*"权限才能使用该AWS OpsHub for Snow Family 应用程序来管理 Snow Family 设备。

以下是授予对 Snowball Edge 设备的权限的策略示例。

允许在 Snow Family 设备上通过以下方式 GetUser 呼叫样本用户 IAM API

使用以下策略允许通过 GetUser 调用示例用户IAMAPI。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "iam:GetUser", "Resource": "arn:aws:iam:::user/example-user" } ] }

允许在 Snow Family 设备API上完全访问亚马逊 S3

使用以下策略允许对 Amazon S3 的完全访问权限API。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

允许对 Snow Family 设备上的 Amazon S3 存储桶进行读写权限

使用以下策略允许对特定存储桶进行读取和写入访问。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::bucket-name" }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": "arn:aws:s3:::bucket-name/*" } ] }

允许在 Snow Family 设备上列出、获取和放置对 Amazon S3 存储桶的访问权限

使用以下策略允许对特定的 S3 存储桶进行列出、获取和放置访问。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:List*" ], "Resource": "arn:aws:s3:::examplebucket/*" } ] }

允许在 Snow Family 设备EC2API上完全访问亚马逊

使用以下策略允许对 Amazon 的完全访问权限EC2。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" } ] }

允许在 Snow Family 设备上启动和停止与亚马逊EC2兼容的实例

使用以下策略允许访问启动和停止 Amazon EC2 实例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ] }

在 Snow Family 设备 DescribeImages 上拒绝所有来电 DescribeLaunchTemplates 但允许所有来电接听

使用以下策略拒绝调用 DescribeLaunchTemplates,但允许所有对 DescribeImages 的调用。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ec2:DescribeLaunchTemplates" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeImages" ], "Resource": "*" } ] }

在 Snow Family 设备上API通话的政策

列出您的 Snow 设备上可用的所有托管策略,包括您自己的客户定义的托管策略。更多详细信息,请参见 list-policies

aws iam list-policies --endpoint http://ip-address:6078 --profile snowballEdge --region snow { "Policies": [ { "PolicyName": "Administrator", "Description": "Root user admin policy for Account 123456789012", "CreateDate": "2020-03-04T17:44:59.412Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "policy-id", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::123456789012:policy/Administrator", "UpdateDate": "2020-03-04T19:10:45.620Z" } ] }

TrustPolicy Snow Family 设备上的示例

信任策略会返回一组临时安全证书,您可以使用这些证书来访问通常可能无法访问的 AWS 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。通常,您在账户中使用 AssumeRole 进行跨账户访问。

以下是信任策略的示例。有关信任策略的更多信息,请参阅 “AWS Security Token Service API参考AssumeRole中的。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AccountId:root" //You can use the Principal ID instead of the account ID. ] }, "Action": [ "sts:AssumeRole" ] } ] }