

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

# 创建 IAM 用户和 Amazon SQS 队列
<a name="sqs-abac-creating-queues"></a>

以下示例说明如何使用 AWS 管理控制台 和创建 ABAC 策略来控制对 Amazon SQS 的访问。 CloudFormation

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

**创建 IAM 用户**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 从左侧导航窗格中选择**用户**。

1. 选择**添加用户**，然后在**用户名**文本框中输入名称。

1. 选择**访问密钥 - 编程访问**框，然后选择**下一步: 权限**。

1. 选择**下一步: 标签**。

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