

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 IAM 使用者和 Amazon SQS 佇列
<a name="sqs-abac-creating-queues"></a>

下列範例說明如何建立 ABAC 政策，以使用 AWS 管理主控台 和 控制對 Amazon SQS 的存取 CloudFormation。

## 使用 AWS 管理主控台
<a name="sqs-abac-creating-queues-console"></a>

**建立 IAM 使用者**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 從左側導覽窗格中，選擇**使用者**。

1. 選擇**新增使用者**，然後在**使用者名稱**文字方塊中輸入名稱。

1. 選取**存取金鑰 - 程式設計存取**方塊，然後選擇**下一步：許可**。

1. 選擇 **Next: Add Tags (下一步：新增標籤)**。

1. 新增鍵 `environment` 且值為 `beta` 的標籤。

1. 選擇**下一步：檢閱**，然後選擇**建立使用者**。

1. 請將存取金鑰 ID 和私密存取金鑰複製並存放在安全之處。

**新增 IAM 使用者許可權**

1. 選取您建立的 IAM 使用者。

1. 選擇**新增內嵌政策**。

1. 在 JSON 標籤上，貼上下列政策。

1. 選擇**檢閱政策**。

1. 選擇**建立政策**。

## 使用 AWS CloudFormation
<a name="sqs-abac-creating-queues-cf"></a>

使用下列範例 CloudFormation 範本建立已連接內嵌政策和 Amazon SQS 佇列的 IAM 使用者：

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation template to create IAM user with custom inline policy"
Resources:
    IAMPolicy:
        Type: "AWS::IAM::Policy"
        Properties:
            PolicyDocument: |
                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowAccessForSameResTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:SendMessage",
                                "sqs:ReceiveMessage",
                                "sqs:DeleteMessage"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "AllowAccessForSameReqTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:CreateQueue",
                                "sqs:DeleteQueue",
                                "sqs:SetQueueAttributes",
                                "sqs:tagqueue"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:RequestTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "DenyAccessForProd",
                            "Effect": "Deny",
                            "Action": "sqs:*",
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/stage": "prod"
                                }
                            }
                        }
                    ]
                }
                
            Users: 
              - "testUser"
            PolicyName: tagQueuePolicy

    IAMUser:
        Type: "AWS::IAM::User"
        Properties:
            Path: "/"
            UserName: "testUser"
            Tags: 
              - 
                Key: "environment"
                Value: "beta"
```