在 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 雲端,請參閱 中的身分和存取管理 AWS Snowball

若要讓 AWS 服務在 Snowball Edge 上正常運作,您必須允許服務的連接埠。如需詳細資訊,請參閱 Snow Family 裝置上的 AWS 服務的連接埠需求

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

使用 AWS CLI 或 API操作在 Snowball Edge 上發出 IAM AWS STS、、Amazon S3 和 Amazon EC2命令時,您必須將 指定region為「」snow。 您可以使用 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

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

本機在 AWS Snowball Edge 上使用的存取金鑰 ID 和存取秘密金鑰不能與 中的金鑰互換 AWS 雲端。

Snowball Edge 上支援的IAM AWS CLI 命令清單

以下是 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-policy – 擷取指定受管政策的相關資訊,包括政策的預設版本,以及附加至政策的本機IAM使用者、群組和角色總數。

  • get-policy-version – 擷取指定版本之指定受管政策的相關資訊,包括政策文件。

  • get-role – 擷取指定角色的相關資訊,包括角色的路徑、ARN、 GUID和角色的信任政策,這些政策授予擔任角色的許可。

  • 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-roles – 列出具有指定路徑字首的本機IAM角色。

  • list-users – 列出具有指定路徑字首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 – 擷取指定角色的相關資訊,包括角色的路徑、ARN、 GUID和角色的信任政策,這些政策授予擔任角色的許可。

  • 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政策的本機IAM支援版本 2012-10-17 和政策文法的子集。

Policy type (政策類型) 支援的文法
以身分為基礎的政策 (使用者/角色政策) "Effect"、"Action" 和 "Resource"
注意

Local IAM不支援「Condition」、「NotAction」、「NotResource」和「Principal」。

以資源為基礎的政策 (角色信任政策) "Effect"、"Action" 和 "Principal"
注意

對於主體,僅允許 AWS 帳戶 ID 或主體 ID。

IAM Snow Family 裝置上的政策範例

注意

AWS Identity and Access Management (IAM) 使用者需要"snowballdevice:*"許可才能使用AWS OpsHub for Snow Family 應用程式來管理 Snow Family 裝置。

以下是授予 Snowball Edge 裝置許可的政策範例。

允許 Snow Family 裝置上的範例使用者透過 GetUser 呼叫 IAM API

使用下列政策允許範例使用者透過 GetUser 呼叫 IAM API。

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

允許 Snow Family 裝置上的 Amazon S3 API 完整存取權

使用下列政策允許完整存取 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:::amzn-s3-demo-bucket/*" } ] }

允許 Snow Family 裝置上的 Amazon EC2 API 完整存取權

使用下列政策允許完整存取 Amazon EC2。

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

允許存取啟動和停止 Snow Family 裝置上的 Amazon EC2相容執行個體

使用下列政策允許存取啟動和停止 Amazon EC2執行個體。

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

拒絕對 的呼叫, DescribeLaunchTemplates 但允許 Snow Family DescribeImages 裝置上的 的所有呼叫

使用下列政策拒絕對 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 進行跨帳戶存取。

下列是信任政策的範例。如需信任政策的詳細資訊,請參閱 參考 AssumeRole中的 。 AWS Security Token Service API

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